不含重复字符的最长子串--O(n)
2010-10-20 20:41
309 查看
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { char * s = "abbc"; int hash[256]; for (int i = 0; i < 256; i++) hash[i] = -1; int cur_start = 0; int max_start = 0; int cur_size = 1; int max_size = 1; hash[s[0]] = 0; for (int i = 1; i < strlen(s); i++) { if (hash[s[i]] == -1) { cur_size++; hash[s[i]] = i; if (cur_size > max_size) { max_size = cur_size; max_start = cur_start; } } else { cur_start = hash[s[i]] + 1; cur_size = i - hash[s[i]]; hash[s[i]] = i; } } cout << "max_start: " << max_start << endl; cout << "max_size: " << max_size << endl; printf("%.*s/n", max_size, s + max_start); system("pause"); return 0; }
相关文章推荐
- 3. Longest Substring Without Repeating Characters(计算不含重复字符的最长子串的长度)
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- Longest Substring Without Repeating Characters 不含重复字符的最长子串
- 求字符串中不含重复字符的最长子串的长度
- 在英文字符串中找第一个最长不含重复字符的子串高效实现(修改版)
- 求字符串中不含重复字符的最长子串
- 字符串最长不含重复字符的子串长度
- 百度面试题 求字符串中不含重复字符的最长子串长度
- 求字符串最长不含重复字符的子串长度
- 贪心法应用:不含重复字符的最长子串
- 求字符串中不含重复字符的最长子串的长度
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- C++找出字符串中最长的不含重复字符的子串
- Java实现-最长无重复字符的子串
- 符串的最长无重复字符的子串长度
- 最长无重复字符子串
- leetcode-最长无重复字符的子串
- nowcoder 最长无重复字符子串
- 最长无重复字符子串
- Longest Substring Without Repeating Characters (返回最长无字符重复的子串长度)