lintcode-384-最长无重复字符的子串
2017-08-09 17:09
639 查看
384-最长无重复字符的子串
给定一个字符串,请找出其中无重复字符的最长子字符串。
样例
例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。
挑战
O(n) 时间标签
哈希表 字符串处理 两根指针思路
参考 http://blog.csdn.net/wangyuquanliuli/article/details/45724887
遍历该字符串,每遍历一个字母时,利用map去找该字母最近一次出现是什么时候,中间这一段便是无重复字符的字符串
code
class Solution { public: /* * @param : a string * @return: an integer */ int lengthOfLongestSubstring(string s) { // write your code here int size = s.size(); if (size <= 1) { return size; } int result = 0, begin = 1; map<char, int> map; for (int i = 1; i <= size; i++) { if (map[s[i - 1]] >= begin) { begin = map[s[i - 1]] + 1; map[s[i - 1]] = i; } else { map[s[i - 1]] = i; result = max(result, i - begin +1); } } return result; } };
相关文章推荐
- lintcode(384)最长无重复字符的子串
- [LintCode 384] 最长无重复字符的子串(Python)
- 最长无重复字符的子串-LintCode
- lintcode: 最长无重复字符的子串
- LintCode 最长无重复字符的子串
- [Lintcode] Longest Substring Without Repeating Characters 最长无重复字符的子串
- lintcode,最长无重复字符的子串
- LintCode-最长无重复字符的子串
- 最长无重复字符的子串 lintcode
- 中等_384_最长无重复字符的子串(6)
- 最长无重复字符子串
- Longest Substring Without Repeating Characters (返回最长无字符重复的子串长度)
- c 求字符串内无重复字符的最长子串
- LeetCode - 无重复字符的最长子串
- [Leetcode #3]Longest Substring Without Repeating Characters 无重复字符的最长子串
- 查找字符串中最长重复字符的子串
- LeetCode题库解答与分析——#3.无重复字符的最长子串LongestSubstringWithoutRepeatingCharacters
- 求字符串中最长无重复字符的子串
- 【LeetCode】3.无重复字符的最长子串 结题报告 (C++)
- Java实现-最长无重复字符的子串