双指针
枚举所有的连续的数字,并处理前导零后放入set中,同时也能够完成去重,最后返回set的大小即可。
class Solution {
public:
int numDifferentIntegers(string word) {
unordered_set<string> st;
int l=-1,r=0,n=word.size();
while(r<n){
if(isdigit(word[r])){
l=r;
while(r<n-1&&isdigit(word[r+1])) r++;
while(word[l]=='0') l++;
st.insert(word.substr(l,r-l+1));
}
r++;
}
return st.size();
}
};
时间复杂度:O(n),n为字符串长度
空间复杂度:O(n)

本文介绍了一种使用双指针法解决特定字符串问题的方法。通过枚举所有连续数字并处理前导零,可以有效地将不同的整数放入集合中实现去重,并最终返回集合的大小。
469

被折叠的 条评论
为什么被折叠?



