leetcode-003 Longest Substring Without Repeating Characters
来源:互联网 发布:国云大数据魔镜 编辑:程序博客网 时间:2024/05/21 06:17
- P003 Longest Substring Without Repeating Characters
- 思路分析
- 代码
- java
- python
P003 Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with the length of 1.Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
思路分析
- 记录子串的起点(start)和终点(end)
- 每次循环都将字符放入map中并记录其index
- 当有重复的时(map中contains该字符),更新start
- 不重复时,取 max(start-end+1,ret)更新可能的最大值
代码
java
public int lengthOfLongestSubstring(String s) { if (s == null || "".equals(s)) return 0; Map<Character, Integer> map = new HashMap<>(); int ret = 0; int start = 0, end = 0; char[] arr = s.toCharArray(); while (end < arr.length) { // map.get(arr[end]) >= start表示get到的char不能在start之前 if (map.containsKey(arr[end]) && map.get(arr[end]) >= start) { start = map.get(arr[end]) + 1; } else { ret = Math.max(ret, end - start + 1); } map.put(arr[end], end); end++; } return ret;}
python
def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ if not s :return 0; m = {} ret = 0;start = 0;end = 0 while(end < len(s)): if (s[end] in m) and (m[s[end]] >= start): start = m[s[end]] + 1 else: ret = max([ret, end - start + 1]) m[s[end]] = end end += 1 # end while return ret
0 0
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode-003 Longest Substring Without Repeating Characters
- 【leetcode】003 Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode 003-Longest Substring Without Repeating Characters
- [LeetCode]-003-Longest Substring Without Repeating Characters
- LeetCode #003 Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- 003 Longest Substring Without Repeating Characters [Leetcode]
- [LeetCode]003-Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode 003: Longest Substring Without Repeating Characters
- leetcode-003 Longest Substring Without Repeating Characters
- LeetCode-003 Longest Substring Without Repeating Characters
- leetcode 003 Longest Substring Without Repeating Characters
- LeetCode: Longest Substring Without Repeating Characters
- LeetCode Longest Substring Without Repeating Characters
- LeetCode: Longest Substring Without Repeating Characters
- POJ 3190 priority_queue 贪心
- 关于jquery :toggle 和css :display
- 复盘的小小帮手——简单编程,进阶范例 通达信基础范例
- 树莓派远程桌面
- 九度+简单模拟题+主要是那个整数翻转的处理方法好
- leetcode-003 Longest Substring Without Repeating Characters
- Light OJ 1203 凸包+寻找凸多边形最小角度
- Lua中的元表与元方法
- stl map find使用不当导致的低概率core dump问题的定位
- 打电话Demo及Android6.0的运行时权限问题
- 【CODEVS 1183】泥泞的道路 SPFA+二分
- 遗传算法 一个模拟自然进化过程的启发式搜索算法
- 邮件发送和接收原理
- 计算机三座高峰: