每日算法之三:Longest Substring Without Repeating Characters
来源:互联网 发布:网络彩票代理合法吗 编辑:程序博客网 时间:2024/06/05 17:52
题目要求:
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.
就是求字符串中不重复字符的连续子串最长长度。
我们可以考虑只扫描母串,直接从母串中取出最长的无重复子串。
对于s[i]:
1.s[i]没有在当前子串中出现过,那么子串的长度加1;
2.s[i]在当前子串中出现过,出现位置的下标为j,那么新子串的起始位置必须大于j,为了使新子串尽可能的长,所以起始位置选为j+1。
代码如下:
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; }};
欢迎批评指导!
0 0
- 每日算法之三:Longest Substring Without Repeating Characters
- Algorithm之路三:Longest Substring Without Repeating Characters
- leetcode算法题之 3. Longest Substring Without Repeating Characters
- 【贪心算法】Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters 算法
- 算法题目--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之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- 【Leetcode】之Longest Substring Without Repeating Characters
- socket阻塞与非阻塞,同步与异步、I/O模型
- MAC OSX Chrome Jsonviewer 插件中文乱码问题解决方法
- 笔试题之二进制输出两数相加
- 关于sqlserver字符类型查询条件区分大小写
- NSMutableArray 添加 cgfloat : sending 'cgfloat' (aka 'float')
- 每日算法之三:Longest Substring Without Repeating Characters
- 使用 NDK r9 编译ffmpeg
- 只要9招就让你的Windows7系统比别人更快!
- string转换为char*
- c++将txt数据批量导入mysql数据库的例子
- 怎样把QString转换为char *或者相反
- dffdgfdgfd
- 在shell脚本中调用另一个脚本的三种不同方法
- SQL利用Case When Then end多条件判断