📅  最后修改于: 2023-12-03 15:07:33.534000             🧑  作者: Mango
本问题是国际空间研究组织(ISRO)的计算机科学招聘考试中的一道题目,要求编写一个函数,接收一个字符串作为参数并返回另一个字符串,该字符串为原始字符串中每个字符的出现次数。
输入:"hello world"
输出:"h1e1l3o2 1w1r1d1"
def count_chars(s):
counter = {}
for c in s:
if c not in counter:
counter[c] = 1
else:
counter[c] += 1
result = ""
for k, v in counter.items():
result += k + str(v)
return result
assert count_chars("hello world") == "h1e1l3o2 1w1r1d1"
assert count_chars("abccddeeffgghh") == "a1b1c2d2e2f2g2h2"
assert count_chars("123321") == "12" # 不同字符出现次数一样时,可能存在计数累加的情况,需要确认测试
本道题目考查了对计数器字典的使用,以及对字符串的基本操作。解决这种类型的题目,要善于用字典来存储计数器,遍历字符串统计每个字符的出现次数,最后把每个字符及其出现次数拼接成字符串即可。