[LeetCode] Longest Substring Without Repeating Characters
LeetCode Without substring Longest characters
2023-09-11 14:17:25 时间
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.
http://blog.csdn.net/pickless/article/details/9018575
#if 0 class Solution { public: int lengthOfLongestSubstring(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function int locs[256];//保存字符上一次出现的位置 memset(locs, -1, sizeof(locs)); int idx = -1, max = 0;//idx为当前子串的开始位置-1 for (int i = 0; i < s.size(); i++) { if (locs[s[i]] > idx)//如果当前字符出现过,那么当前子串的起始位置为这个字符上一次出现的位置+1 { idx = locs[s[i]]; } if (i - idx > max) { max = i - idx; } locs[s[i]] = i; } return max; } }; #endif class Solution { public: int lengthOfLongestSubstring(string s) { int hash[256]; // save the index of s[i] int start = -1; int len = 0; memset(hash, -1, sizeof(hash)); for(int i = 0; i< s.size(); i++/**/) { // update the start if the start is in the front of the old hash[s[i]] if(start < hash[s[i]]) start = hash[s[i]]; len = max(i - start, len); hash[s[i]] = i; } return len; } };
相关文章
- Java实现 LeetCode 151 翻转字符串里的单词
- LeetCode(79): 单词搜索
- [LeetCode] Max Points on a Line
- LeetCode-2379. 得到 K 个黑块的最少涂色次数【字符串,滑动窗口】
- Leetcode学习计划之动态规划入门day8(309,714)
- leetcode 刷题之路 66 Path Sum II
- 【LeetCode 中等 字符串】5 最长回文子串
- 【LeetCode从零单排】No 3 Longest Substring Without Repeating Characters
- Leetcode-3 Longest Substring Without Repeating Characters
- LeetCode 700. 二叉搜索树中的搜索
- LeetCode 83. 删除排序链表中的重复元素