我在python程序中针对以下问题使用的逻辑有什么问题?

时间:2018-10-08 15:31:53

标签: python

  

给出了两个字符串。修改第一字符串,以便必须删除第二字符串的所有常见字符,并且必须将第二字符串的不常见字符与第一字符串的不常见字符连接起来。

我针对上述问题的代码是:

str_1=input('Enter string 1') 
str_2=input('Enter string 2')

len_1=len(str_1)
len_2=len(str_2)

status=0

str_3=' '

for i in range(0,len_1):
   for j in range(0,len_2):
       if(str_1[i]==str_2[j]):
          status=1
          break

   if(status==0):
       str_3=str_3+str_1[i]

for i in range(0,len_2):
   for j in range(0,len_1):
        if(str_2[i]==str_1[j]):
           status=1
           break

   if(status==0):
        str_3=str_3+str_2[i]  

print('The formatted string is',str_3)

我没有得到想要的输出。请帮助我。

该问题的输入和输出示例为:-

Input:
  aabcd
  gafd
Output:
 bcgf 

1 个答案:

答案 0 :(得分:1)

这里没有什么太复杂的,只需遍历第一个项目,检查它们是否不在第二个字符串中,如果不保留它们。然后遍历s2,如果s1中没有,请附加它们。

s1 = 'aabcd'
s2 = 'gafd'

res = [i for i in s1 if i not in s2]
for i in s2:
    if i not in s1:
        res.append(i)

print(''.join(str(i) for i in res))
# bcgf

如果输出中元素的顺序不重要

i = set(s1) ^ set(s2)
print(''.join(str(x) for x in i))
# gbcf