Skip to content

02927: 判断数字个数

hash table, http://cs101.openjudge.cn/practice/02927/

判断一行字符串中的数字出现的个数。

输入

输入有多行,每行一个字符串,该字符串中可以包含&^$^#@*任何符号以及空格。

输出

有多行。输出该字符串中每个出现过的数字,然后在冒号“:”后面输出该数字出现的次数。按数字大小,从小到大的顺序输出。一行输出一个数字及其出现次数。没有出现过的数字不输出。

样例输入

ldksfj857ld*&%&^%00000
138****0055end

样例输出

0:5
5:1
7:1
8:1
0:2
1:1
3:1
5:2
8:1

来源:06级计算概论课

python
import sys
from collections import Counter

def count_digits_in_string(line):
    # 统计字符串中的数字出现次数
    digit_count = Counter(char for char in line if char.isdigit())
    
    # 按数字大小排序
    sorted_digit_count = sorted(digit_count.items(), key=lambda x: int(x[0]))
    
    # 输出结果
    for digit, count in sorted_digit_count:
        print(f"{digit}:{count}")

def main():
    # 读取所有输入行
    input_lines = sys.stdin.read().strip().split('\n')
    
    # 遍历每一行并处理
    for line in input_lines:
        count_digits_in_string(line)

if __name__ == "__main__":
    main()