leetcode p3 Longest Substring Without Repeating Characters
来源:互联网 发布:湖北大学知行学院后街 编辑:程序博客网 时间:2024/06/10 08:54
3. Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring,
"pwke"
is a subsequence and not a substring.
思路:
因为只是一个字符串,只涉及到ascii码 ,所以我们将所有的出现的字符序号维持在一个256的数组next(即a在字符串中的序号为1,
那么next[97] = 1,但是序号为2的也是a,那么就会更新next[97] = 2)中,再维持一个变量start(默认为-1)表示最近出现重复字符的序号(比如aba,
当扫描到第一个a的时候,此时没有重复的,那么start=-1, 然后到b也是没有重复,之后到第二个a,那么此时就更新start为之前a的序号即start=0)
代码(python):
class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ leng = len(s) next = [-1]*(256) start=-1 max_len = 0 for i in xrange(leng): if next[ord(s[i])] > start: start = next[ord(s[i])] next[ord(s[i])] = i max_len = max(max_len, i-start) return max_lenwhile True: print Solution().lengthOfLongestSubstring(raw_input())c++
#include<iostream>#include<string>#include<vector>#include<cmath>using namespace std;class Solution {public: int lengthOfLongestSubstring(string s) { int leng = s.length(); vector<int >next(256, -1); int i = 0; int start = -1; int max_len = 0; while(i < leng){ if(next[s[i]] > start){ start = next[s[i]]; } next[s[i]] = i; max_len = max(max_len, i-start); ++i; } return max_len; }};int main(){ Solution a = Solution(); string temp; cin>>temp; cout<<(a.lengthOfLongestSubstring(temp)); return
0 0
- leetcode--P3 Longest Substring Without Repeating Characters
- leetcode p3 Longest Substring Without Repeating Characters
- LeetCode: Longest Substring Without Repeating Characters
- LeetCode Longest Substring Without Repeating Characters
- LeetCode: Longest Substring Without Repeating Characters
- [Leetcode] Longest Substring Without Repeating Characters
- leetcode 23: Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- LeetCode 3 - Longest Substring Without Repeating Characters
- [LeetCode]Longest Substring Without Repeating Characters
- leetcode Longest Substring Without Repeating Characters
- 【leetcode】 Longest Substring Without Repeating Characters
- LeetCode-Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- [leetcode] Longest Substring Without Repeating Characters
- LeetCode - Longest Substring Without Repeating Characters
- LeetCode 3: Longest Substring Without Repeating Characters
- 递归算法
- Android Fragment中载入Fragment时注意事项
- 如何从Apache官网下载windows版apache服务器
- Nginx出现413 Request Entity Too Large错误解决方法
- codeforces-733C-greedy
- leetcode p3 Longest Substring Without Repeating Characters
- scp 在脚本中使用输入密码的解决方法
- Mac OSX下给树莓派安装Raspbian系统
- sbt从入门到半熟
- 经典eclipse安装java web插件
- CentOs6.4安装lnmp
- 链表的c语言实现以及根据linux内核中链表的实现过程
- QWidget属性解释
- centos7默认开机进入命令行界面