TCS 国家资格赛 2 编码问题。
给你一个字符串,你的任务是打印每个字符的频率。解决问题的方向:
1. 从标准输入中获取字符串。
aaaabbBcddee
2. 使用 set() 获取给定字符串中的所有不同字符。
set ={a, b, B, c, d, e} # unordered set
3. 迭代不同的字符( len(set )),因为我们只需要打印一次字符,它会计入输入字符串
range 0 to 5 i.e total 6 element
4. 在每次迭代中获取第一个字符打印它和它的计数。
now for 0
input_string[0] is 'a' and its count is 4
5.删除所有出现的第一个字符,这将使下一个字符成为第一个字符。
remove 'a' by replacing all 'a' in string by ""
new input string will be
bbBcddee
6. 重复同样的过程,转到第 4 步。
7. 在每次迭代时将值打印到 STDOUT (python3) 或一次性打印 (python2),您的输出将与
a4b2B1c1d2e2
例子:
Input : aaaabbBcddee
Output :a4b2B1c1d2e2
Input :aazzZ
Output :a2z2Z1
Python
# Python2 code here
input_string = raw_input()
temp_string =""
for _ in range(len(set(input_string))):
temp_string += input_string[0] + str(input_string.count(input_string[0]))
input_string = input_string.replace(input_string[0], "")
print temp_string
Python3
# Python3 code here
input_string = input()
for _ in range(len(set(input_string))):
print(input_string[0]+str(input_string.count(input_string[0])), end ="")
input_string = input_string.replace(input_string[0], "")
Python3
# Python3 code here
input_string = input()
for _ in range(len(set(input_string))):
print(input_string[0]+str(input_string.count(input_string[0])), end ="")
input_string = input_string.replace(input_string[0], "")