Longest Substring Without Repeating Characters
2015-09-05 11:13
363 查看
class Solution { public: int lengthOfLongestSubstring(string s) { // for ASCII char sequence, use this as a hashmap vector<int> charIndex(256, -1); int longest = 0, m = 0; for (int i = 0; i < s.length(); i++) { m = max(charIndex[s[i]] + 1, m); // automatically takes care of -1 case//保证每次都找到不同的序列的第一个序号 charIndex[s[i]] = i; longest = max(longest, i + 1- m);
} return longest; } };
charIndex[s[i]]就是上个相同同的索引号的最大一个
假设不同的序列长度为[m,i],则当新出现一个不在序列里时,longest加1通过使序列号自增 ;当遇到相同时,则m要进行更新到下一个不含相同字符的第一个,并且新的不重复段也变成i+1-m。
相关文章推荐
- HDU3694 Fermat Point in Quadrangle(求四边形费马点)
- [HDOJ5384]Danganronpa
- 数据处理——两文件快速对接
- [8-30]文件查找命令locate、find知识梳理
- JAVA学习——多线程
- Just Do It: 学习Sinatra,第一部分
- C#的语句
- Xcode6使用iOS8的sizeClasses解决屏幕适配问题
- win linux 批处理 循环
- 1019. General Palindromic Number (20)
- 使用REXML在ruby中处理xml
- AI (Adobe Illustrator)详细用法(五)
- Linux下常见压缩包的解压方法
- MySQL数据库之布尔类型、枚举类型和集合类型的应用场景详解
- Java类中各成员及函数方法的执行顺序
- 【年总】——因为坚持平凡,所以不平凡
- 二叉树的遍历
- 20150905全志A20上调通rtl8188eus的过程
- 1.每月最后一天的判断
- django 1.8 官方文档翻译: 3-3-3 文件储存API