第3章-16.删除字符 (30分)(此题有坑)

输入一个字符串 str,再输入要删除字符 c,大小写不区分,将字符串 str 中出现的所有字符 c 删除。

输入格式:

在第一行中输入一行字符 在第二行输入待删除的字符

输出格式:

在一行中输出删除后的字符串

输入样例:

在这里给出一组输入。例如:

        Bee
   E
 

输出样例:

在这里给出相应的输出。例如:

result: B

Note:
1.坑点在于题目中默认输入的字符串两边不允许有空格,默认删除的字符c不可以有空格,参考中M这门课官方助教给出的答复
2.Python语言有一个print()方法的特性:如print("abc","123")输出的结果:abc 123
  即print()方法默认在用一个逗号间隔两个变量输出的时候会输出一个空格

第一版代码(不建议参考,有点C-like的感觉,建议参考第二版代码)
 1 # 删除字符
 2 # Author: cnRick
 3 # Time  : 2020-3-26
 4 #数据预处理
 5 aStr = input().strip()
 6 delete_char_list = list(input().strip())
 7 delete_char_noredundancy = [] #存放所有没有冗余的待删除字符
 8 result = [] #存放结果
 9 for i in range(len(delete_char_list)):
10     if((delete_char_list[i] in delete_char_noredundancy) == True):
11         continue
12     else:
13         if('A' <= delete_char_list[i] <= 'Z'):
14             delete_char_noredundancy.append(delete_char_list[i])
15             delete_char_noredundancy.append(delete_char_list[i].lower())
16         elif('a' <= delete_char_list[i] <= 'z'):
17             delete_char_noredundancy.append(delete_char_list[i])
18             delete_char_noredundancy.append(delete_char_list[i].upper())
19         else:
20             delete_char_noredundancy.append(delete_char_list[i])
21 
22 for i in range(len(aStr)):
23     if((aStr[i] in delete_char_noredundancy) == True):
24         continue
25     else:
26         result.append(aStr[i])
27 result = "".join(result)
28 print(f"result: {result}",end="") #手动输入一个空格来模拟这个特性...

第二版代码

1 # 删除字符
2 # Author: cnRick
3 # Time  : 2020-3-26
4 aStr = input().strip() #把输入的待处理字符串前后的空格字符删除
5 print(aStr)
6 delete_chars = input().strip() ##把输入的要删除的字符前后的空格字符删除
7 print(delete_chars)
8 print("result:",aStr.replace(delete_chars.upper(),"").replace(delete_chars.lower(),""))
 
原文地址:https://www.cnblogs.com/dreamcoding/p/12572839.html