牛客华为HJ23删除字符串中出现次数最少的字符

    愚蠢的写法。不用python自带的方法,啥都自己写一遍,脑子都用在排错。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 愚蠢的写法。不用python自带的方法,啥都自己写一遍,脑子都用在排错。
import sys

raw_data = []
less_dict = {}

for line in sys.stdin:
a = line.split()
# print(a[0])
raw_data = list(a[0])

for i in raw_data:
if i not in less_dict.keys():
less_dict[i] = 1
else:
less_dict[i] += 1

# print(less_dict)
# 在字典内 找出最小的几个。
temp = []
for key,value in less_dict.items():
if temp == []:
temp.append((key,value))
last_value = value
else:
if value < last_value:
temp.pop()
temp.append((key,value))
last_value = value
elif value == last_value:
temp.append((key,value))
# print(temp)
# print(temp)
small_str = ''.join([ _[0] for _ in temp])
# print(small_str,'ok')

i ,result = 0,[]
for i in range(len(raw_data)):
if raw_data[i] not in small_str:
result.append(raw_data[i])
print(''.join(result))

​ 聪明的写法,利用python 各种str和dict方法,集中注意力在思路上,简洁;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 聪明的写法,利用python 各种str和dict方法,集中注意力在思路上,简洁;
import sys

a = input() # 原始str
# print(a)

c = {} # 构建 出现次数的字典;
for i in a:
c[i] = a.count(i)
# print(c)

for key,value in c.items(): # 根据 次数字典,在原始str内 把最少的用“”替换掉。
if value == min(c.values()):
a = a.replace(key,"")
print(a)