数据结构和算法分析数据结构与算法

Leetcode-3 无重复字符的最长子串

2021-10-27  本文已影响0人  itbird01

3. 无重复字符的最长子串

解题思路

1.双层for循环,遍历字符串
2.将遍历到的字符,add到hashset中,如果add失败,则说明此次遍历,set中已有重复元素,此时退出循环
3.将保留的result与set.size对比,将result保持为最大值
4.循环1~3,直到遍历到字符串末尾
5.此时result为最长字符串长度

解题遇到的问题

后续需要总结学习的知识点

1.其他解法?

##解法1
class Solution {
    public static int lengthOfLongestSubstring(String s) {
        int result = 0;
        HashSet<Character> set = new HashSet<Character>();
        for (int i = 0; i < s.length(); i++) {
            set.clear();
            for (int j = i; j < s.length(); j++) {
                if (!set.add(s.charAt(j))) {
                    break;
                }
            }
            if (set.size() >= result) {
                result = set.size();
            }
        }
        return result;
    }
}
上一篇下一篇

猜你喜欢

热点阅读