概述
题目地址:
https://leetcode.com/problems/number-of-different-integers-in-a-string/
给定一个只含数字和英文小写字母的字符串 s s s,最长连续的数字字符构成一个十进制数,问这个字符串里有多少个不同的十进制数。
遍历 s s s,当遇到 0 0 0的时候,只有它是连续数字字符的最后一次出现的 0 0 0的时候,我们才能确定有个十进制数字是 0 0 0,将其加入哈希表;遇到非 0 0 0数的时候直接截出这个数加入哈希表即可。注意这里会爆long,所以要存字符串。代码如下:
import java.util.HashSet;
import java.util.Set;
public class Solution {
public int numDifferentIntegers(String word) {
Set<String> set = new HashSet<>();
for (int i = 0; i < word.length(); i++) {
if (Character.isDigit(word.charAt(i))) {
if (word.charAt(i) == '0') {
if (i + 1 == word.length() || !Character.isDigit(word.charAt(i + 1))) {
set.add("0");
}
} else {
int j = i;
while (j < word.length() && Character.isDigit(word.charAt(j))) {
j++;
}
set.add(word.substring(i, j));
i = j;
}
}
}
return set.size();
}
}
时空复杂度 O ( l s ) O(l_s) O(ls)。
最后
以上就是糊涂黑裤为你收集整理的【Leetcode】1805. Number of Different Integers in a String题目地址:的全部内容,希望文章能够帮你解决【Leetcode】1805. Number of Different Integers in a String题目地址:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复