Leetcode- Longest Substring Without Repeating Characters

来源:互联网 发布:淘宝联盟代码怎么用 编辑:程序博客网 时间:2024/05/14 11:06

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.


第一种方法:用 flags数组记录每个字符是否出现过,从第一个字符开始循环,用int second 记录搜索开始位置,看字符str[ i ] 是出现过,如果出现过则判断最大长度,同时要初始化lags数组的状态,初始化后并且从second  到 i 直接的状态也要重新设置,再进入轮循环。注意最后一次。


第二种方法:从左往右扫描,当遇到重复字母时,以上一个重复字母的index+1,作为新的搜索起始位置,直到最后一个字母,复杂度是O(n)

用flags记录每个元素最后出现的位置,用int second 记录搜索开始位置,如果遇到元素重复出现了且出现位置在大于等于second 就是真的重复,如果出现位置在second前面那就没有重复这次搜索的字串

转自:https://github.com/soulmachine/leetcode


0 0
原创粉丝点击