不同整数的计数问题-题解.py

102 阅读1分钟

不同整数的计数问题

问题描述

小R有一个字符串 word,该字符串由数字和小写英文字母组成。小R想用空格替换每一个不是数字的字符。然后,他希望统计在替换后剩下的整数中,不同整数的数目。

例如,给定字符串 "a123bc34d8ef34",替换后形成的字符串是 " 123 34 8 34",剩下的整数是 "123""34""8" 和 "34"。不同的整数有三个,即 "123""34" 和 "8"

注意,只有当两个整数的不含前导零的十进制表示不同,才认为它们是不同的整数。


测试样例

样例1:

输入:word = "a123bc34d8ef34"
输出:3

样例2:

输入:word = "t1234c23456"
输出:2

样例3:

输入:word = "a1b01c001d4"
输出:2

思路:

直接模拟,开一个字符串存连续数字即可,复杂度O(n), 用集合去重即可,非常简单

code


def solution(word: str) -> int:
    l = 0

    p = set()
    ck=set()
    s=''
    for i in range(10):
        p.add(str(i))
    for i in range(len(word)):
        if word[i] in p:
            s+=word[i]
        else:
            if s:
                ck.add(int(s))
                s=''
    if s:
        ck.add(int(s))
        s = ''
    return len(ck)


if __name__ == '__main__':
    # print(solution("a123bc34d8ef34") == 3)
    # print(solution("t1234c23456") == 2)
    # print(solution("a1b01c001d4") == 2)
    print(solution("zgw5f0k7rj4q4tsk4dos1u") == 5)