leetcode: Longest Substring Without Repeating Characters
来源:互联网 发布:淘宝上怎么实名认证 编辑:程序博客网 时间:2024/04/28 20:11
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.
思路
一看这道题,差点被它举得例子给带坏了,以为这个字符串是从第一个字母开始的,就觉得没什么难的嘛,难道又是有什么高端的牛逼的简练的算法?后来与室友讨论了一下,恍然大悟,原来是这个子字符串是可以不同第一个字母开始的(读题很重要啊),瞬间就觉得貌似不太好做了。可是,高端的室友又提醒了我一下,以前写过一个找回文的题。当时用的是动态规划,也就是后面的计算使用前面的结果,瞬间我就知道怎么写了。今天下午把它写出来了。
简而言之就是,先看长度为1的子字符串是不是每个字母都不重复,然后看长度为2的,而在看长度为2的时候。这样在看长度为k的子字符串的时候,不要再一个一个的比了看是不是没有重复的字母了,而是结合前面长度为k-1的子字符串,也就是说先看后k-1个字母是不是有重复的字母(这个可以看之前计算过的结果),然后在看第一个字母在是不是在剩下的k-1个字母中出现过。这样就是思路,提交了之后一次性通过。
class Solution {public: int lengthOfLongestSubstring(string s) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case.vector<bool> status(s.length(),true);for(int l=1;l<s.length();l++){bool res=false;for(int i=0;i+l<s.length();i++){string tmp=s.substr(i+1,l);if(status[i+1]){if(inStr(s[i],tmp))status[i]=false;}else{status[i]=false;}res = res || status[i];}if(!res) return l;}return s.length(); }bool inStr(char c,string str){for(int i=0;i<str.length();i++){if(c==str[i])return true;}return false;}};
- 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
- leetcode-3:Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- C++中缀转后缀表达式
- DCOM列集散集的内部具体实现的研究初探。
- 常见的关于abstract与interface的区别的笔试题的解析
- 我遇到的问题
- LINUX 更改主机名后引起的Oracle错误(个人)
- leetcode: Longest Substring Without Repeating Characters
- [回溯]Transportation UVA301
- set env export
- uva10132 字符串数组的qsort排序技巧
- SNMP表量索引到OID的转换规则
- QQ IP 地址查询相关
- 页面调用后台方法
- C++第12周项目3——太乐了多文件版
- CArray 用法