美文网首页
最长无重复字符子串练习题

最长无重复字符子串练习题

作者: 郑明明 | 来源:发表于2017-06-27 09:27 被阅读94次
题目

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

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

思路
  • DP思想:最优子结构、重复子问题
  • Hash:存储上一个位置,辅助DP进行
答案
    int longestSubstring(string A, int n) {
        // 存储上一个重复字符的位置
        int *lastPosition = new int[256];
        for (int i = 0; i < 256; i++) {
            lastPosition[i] = -1;
        }

        // 动态规划过程
        int previous = -1;// 前一个的最长子串左节点位置
        int current = 0;
        int maxLength = 0;
        for (int i = 0; i < n; i++) {
            previous = max(previous, lastPosition[A[i]]);
            current = i - previous;
            maxLength = max(current, maxLength);
            lastPosition[A[i]] = i;
        }
        return maxLength;
    }

相关文章

  • 2021-03-15 美团优选面试总结

    牛客网答题 练习题:力扣网 1.找到字符串的最长无重复字符子串 翻转单向链表,并输出新的Head ThreadLo...

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

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

  • 2019-07-03

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

  • 最长无重复字符子串练习题

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

  • 最长无重复字符子串练习题

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

  • 面试常见算法

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

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

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

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

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

  • 字符串

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

  • 文章收藏

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

网友评论

      本文标题:最长无重复字符子串练习题

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