import java.util.HashSet;
// 1805. Number of Different Integers in a String
class Solution {
public int numDifferentIntegers(String word) {
HashSet<String> hashSet = new HashSet<>();
char[] charArray = word.toCharArray();
int len = charArray.length;
int i = 0;
int j = i;
OUTER:
while (i < len) {
while (charArray[i] > 57) {
++i;
if (i == len) {
break OUTER;
}
}
j = i;
while (charArray[i] < 58) {
++i;
if (i == len) {
break;
}
}
while (charArray[j] == '0' && j < i - 1) {
++j;
}
hashSet.add(word.substring(j, i));
}
return hashSet.size();
}
}
学习笔记:
这道题是简单题。
但是我觉得差不多有中等了,主要就是用双指针算法。
双指针切割字符串,存入集合可以去重算出数量。
麻烦的就是前导零,我本来打算是转int存set,发现不行。后来用long存set,竟然还是不行,里面有很长很离谱的数字。
好吧,最后就干存string了只好,但是得跑一下左指针把前导零去掉。