美文网首页
3_12最长无重复字符子串

3_12最长无重复字符子串

作者: X_Y | 来源:发表于2017-09-08 22:39 被阅读16次

对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度。

给定一个字符串A及它的长度n,请返回它的最长无重复字符子串长度。保证A中字符全部为小写英文字符,且长度小于等于500。

测试样例:
输入:"aabcb",5
返回:3

class DistinctSubstring {
    public:
        int longestSubstring(string A, int n) {
            // write code here
            // 用数组(初始化为-1)记录每个字符前一次出现的位置,如果数组中该字符索引的位置不为-1,
            // 则说明出现重复,
            vector<int> dict(256, -1);
            // idx表示当前字符的位置,start指向开始计算长度的起始点,start之前的全部抛弃
            int idx = 0, longest = 0, start = 0;
            while(idx < n){
                // 不重复,长度+1, 并记录当前出现的位置
                if(-1 == dict[A[idx]]){
                    dict[A[idx]] = idx; 
                    longest = max(idx - start + 1, longest);
                }else{
                    // 出现重复,判断当前字符A[idx]之前出现的位置和start谁更靠右,
                    // 然后求出当前位置往前的最大无重复长度
                    int dist = min(idx - dict[A[idx]], idx - start +1);
                    longest = max(dist, longest);
                    start = max(dict[A[idx]]+1, start);
                    cout << start << '\n';
                    dict[A[idx]] = idx;
                }
                ++idx;            
            }
            return longest;
        }
};

相关文章

  • 3_12最长无重复字符子串

    对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度。 给定一个字符串A及它的长度n,请返回它...

  • iOS面试题汇总---算法类

    字符串 【3】最长回文子串 【3】最长无重复子串 【1*】字符串转数字 【4】KMP 算法 【2】字符串全排列 【...

  • 2019-07-03

    删除链表倒数第N个节点 最长回文子串 无重复字符的最长子串

  • 面试常见算法

    最长不含重复字符的子字符串: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例...

  • leetCode3最大无重复字符的子串

    最长无重复字符的子串 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例: 实现思路 初始化hashSet...

  • 算法1-无重复字符的最长子串

    无重复字符的最长子串 首先分析一下题目,求给定字符串的最长不重复子串,思路应该是分治不断降规模,把长度为n的字符串...

  • 字符串

    1 最长无重复字符子串 2 最长上升子序列(动态规划) 3 最长公共子序列的长度(动态规划) 4 对于一个字符串,...

  • 文章收藏

    iOS面试题系列之常见算法 排序算法整理 字符串【3】最长回文子串【3】最长无重复子串【1*】字符串转数字【4】K...

  • 最长不重复子串

    1. 问题定义 最长不重复子串:一个字符串中最长的没有重复字符的子串。举个? : abcabcbb 最长子串 a...

  • Golang 无重复字符的最长子串

    无重复字符的最长子串

网友评论

      本文标题:3_12最长无重复字符子串

      本文链接:https://www.haomeiwen.com/subject/mpnnjxtx.html