Daily LeetCode – day0130 1805. Number of Different Integers in a String

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了只好,但是得跑一下左指针把前导零去掉。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注