Daily LeetCode – day0050 1624. Largest Substring Between Two Equal Characters

// 1624. Largest Substring Between Two Equal Characters
class Solution {
    public int maxLengthBetweenEqualCharacters(String s) {
        int[] firstSeen = new int[123];
        for (int i = 97; i < 123; ++i) firstSeen[i] = -1;
        char[] charArray = s.toCharArray();
        int ans = -1;
        for (int i = 0; i < charArray.length; ++i) {
            if (firstSeen[charArray[i]] != -1) {
                if (i - firstSeen[charArray[i]] - 1 > ans) {
                    ans = i - firstSeen[charArray[i]] - 1;
                }
            } else {
                firstSeen[charArray[i]] = i;
            }
        }
        return ans;
    }
}
学习笔记:
这是一道简单的字符串数组题。
原本我以为两个字母之间不允许有和两端字母相同的字母,所以做成了上一个和下一个相同之间字母的距离了,结果跑出来错了。原来并不是,这道题本质是求头一个和尾一个相同字母之间的最大距离。


关于樊轶群

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

发表回复

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