(字符串哈希表)找到字符串中不重复出现字符的最长子串长度
2017-02-02 11:13
423 查看
题目:
思路:由于这个题目只要给出最长不重复子串的长度,所以代码比较简单。第一思路就是利用哈希表来进行操作。用字符当做键值,字符在串中的位置当做实值。用pre变量记录字符第一次出现的位置,最大长度max就是利用当前位置减去pre就是当前最大长度了。
代码
给定一个字符串,找到不重复字符的最长子字符串的长度。 例如,对于“abcabcbb”,不重复字母的最长子字符串是“abc”,长度为3.对于“bbbbb”,最长子字符串是“b”,长度为1。
思路:由于这个题目只要给出最长不重复子串的长度,所以代码比较简单。第一思路就是利用哈希表来进行操作。用字符当做键值,字符在串中的位置当做实值。用pre变量记录字符第一次出现的位置,最大长度max就是利用当前位置减去pre就是当前最大长度了。
代码
class Solution { public: int lengthOfLongestSubstring(string s) { map<char, int> mp; for (int i=0; i<s.length(); i++) mp[s[i]] = -1;//初始化哈希表 int pre = -1, Max = 0; for (int i=0; i<s.length(); i++){ pre = max(pre, mp[s[i]]); Max = max(Max, i-pre); mp[s[i]] = i; } return Max; } };
相关文章推荐
- 给定一个字符串,找到最长的子串的长度没有重复字符
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
- 返回一个字符串中重复出现的最长字串的长度及其开始字符
- 找到字符串的最长无重复字符子串
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 求字符串最长不含重复字符的子串长度
- [leetcode]获取字符串中字符不重复的最长子串的长度
- 求给定的某一个字符串中的最长的没有重复字符的子串的长度
- 求一字符串最长不重复字符子串的长度【Java 版】
- 写一个函数,用来把一个字符串用指定的字符作为分隔符分割成若干个子串输出 | 写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址
- 字符串问题---找到字符串的最长无重复字符子串
- 找到字符串的最长无重复字符子串
- 输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 字符串最长不含重复字符的子串长度
- 找出一个字符串中出现的重复的最长的字符子串
- 找到字符串的最长无重复字符子串
- 求字符串中不含重复字符的最长子串的长度
- 百度面试题 求字符串中不含重复字符的最长子串长度
- 求字符串的不重复字符的最长子串长度的问题
- 求字符串中不含重复字符的最长子串的长度