Leetcode Q3:Longest Substring Without Repeating Characters
2015-07-24 11:19
399 查看
题目3:
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.
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.
#define MAP_SIZE 256 int lengthOfLongestSubstring(char* s) { int i = 0; int start = 0; char* p = NULL; int temp_max_size = 0; /* 当次找到的最大子串长度 */ int max_size = 0; static int MapRecord[MAP_SIZE]; /* 如果将这两个数组放在全局变量中,在leetcode上就会报错 */ memset(MapRecord, -1, MAP_SIZE*sizeof(int)); p = s; start = 0; /* 记录当前查询到的最长子串的起始位置 */ while (*p != '\0') { if (MapRecord[*p] == -1) { MapRecord[*p] = p - s; /* map记录已经在子串中 */ temp_max_size++; p++; } else /* 遇到相同的字符 */ { /* 当前查找到的最大子串中,清空相同字符前的map,子串从相同字符串位置后一个开始记录 */ for (i = start; i < MapRecord[*p]; i++) { MapRecord[*(s+i)] = -1; } if (temp_max_size > max_size) { max_size = temp_max_size; } temp_max_size -= (MapRecord[*p] - start); start = MapRecord[*p] + 1; /* 修改当前最大子串的开始位置 */ MapRecord[*p] = p - s; p++; } } /* 字符串结束时,输出结果 */ if (temp_max_size > max_size) { max_size = temp_max_size; } return max_size; }
相关文章推荐
- javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
- JS中的substring和substr函数的区别说明
- js substr、substring和slice使用说明小记
- js中substring和substr的详细介绍与用法
- javascript indexOf方法、lastIndexOf 方法和substring 方法
- javascript中String类的subString()方法和slice()方法
- sqlserver substring函数使用方法小结
- JavaScript中使用Substring删除字符串最后一个字符
- JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
- mysql截取的字符串函数substring_index的用法
- js substring()字符串截取函数
- Js中的substring,substr与C#中的Substring比较
- js中substring和substr的定义和用法
- JavaScript字符串对象substring方法入门实例(用于截取字符串)
- js中substr,substring,indexOf,lastIndexOf的用法小结
- javascript中substr,substring,slice.splice的区别说明
- 几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
- js substr,substring与java substring和C# substring的区别解析
- JAVA中字符串函数subString的用法小结
- Mysql字符串截取函数SUBSTRING的用法说明