「每日LeetCode」2022年12月6日
本文最后更新于:2023年3月19日 晚上
1805.字符串中不同整数的数目
1805.字符串中不同整数的数目
Category | Difficulty | Likes | Dislikes |
---|---|---|---|
algorithms | Easy (45.00%) | 59 | - |
Tags
Companies
给你一个字符串 word ,该字符串由数字和小写英文字母组成。
请你用空格替换每个不是数字的字符。例如,”a123bc34d8ef34” 将会变成 “ 123 34 8 34” 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):”123”、”34”、”8” 和 “34” 。
返回对 word 完成替换后形成的 不同 整数的数目。
只有当两个整数的 不含前导零 的十进制表示不同, 才认为这两个整数也不同。
示例 1:
输入:word = “a123bc34d8ef34” 输出:3 解释:不同的整数有 “123”、”34” 和 “8” 。注意,”34” 只计数一次。
示例 2:
输入:word = “leet1234code234” 输出:2
示例 3:
输入:word = “a1b01c001” 输出:1 解释:”1”、”01” 和 “001” 视为同一个整数的十进制表示,因为在比较十进制值时会忽略前导零的存在。
提示:
- 1 <= word.length <= 1000
- word 由数字和小写英文字母组成
思路
首先,函数会在输入字符串的末尾添加一个“$”字符。然后,它会使用一个正则表达式来测试该字符串中的每个字符,看它是否是一个数字(即 0 到 9 之间的数字)。如果该字符是一个数字,并且还没有开始记录一串数字,那么函数会设置一个标志来表示已经开始了一串数字,并记录下该串数字的起始索引。如果该字符不是数字,但是之前已经开始了一串数字,那么函数会从输入字符串中提取出该串数字,去掉它的前导 0,并把得到的整数添加到一个 Set 对象中。这样做能确保只有不同的整数被添加到 Set 中。最后,函数会返回 Set 的大小,也就是说输入字符串中包含的不同整数的数量。
解答
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!