LeetCode 3: Longest Substring Without Repea (JAVA)
2015-04-06 00:00
211 查看
摘要: 因为map放入相同的key,只是跟新value,所以当前map中的位置都是最新的.如果在头的前面就说明都没出现过,后面就表示出现了,这时候移动头指针就行.map表不会很大,只是要频繁的更新
Longest Substring Without Repeating Characters
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.
Longest Substring Without Repeating Characters
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.
public class Solution { public int lengthOfLongestSubstring(String s) { int max = 1, tempmax = 1, head = 0; char[] ss = s.toCharArray(); if(ss.length == 0) return 0; else if(ss.length == 1) return 1; else if(ss.length == 2){ if(ss[0] == ss[1]) return 1; else return 2; } char shead = ss[head]; Map<String,Integer> map = new HashMap<String,Integer>(); new String(); String add = String.valueOf(shead); map.put(add,head); for(int i = 1; i < ss.length; i++){ tempmax = i-head+1; char stail = ss[i]; new String(); String now = String.valueOf(stail); if(map.containsKey(now)){ int pointer = map.get(now); if(pointer >= head) { //因为map放入相同的key,只是跟新value,所以当前map中的位置都是最新的 //如果在头的前面就说明都没出现过,后面就表示出现了,这时候移动头指针就行 //map表不会很大,只是要频繁的更新 tempmax = i-pointer; head = pointer+1; }else{ if(max < tempmax) max = tempmax; } map.put(now,i); }else { if(max < tempmax) max = tempmax; map.put(now,i); } } return max; } }
相关文章推荐
- Longest Substring Without Repeating Characters -- Leetcode Java
- 【LeetCode-面试算法经典-Java实现】【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】
- Longest Substring Without Repeating Characters leetcode java
- [Leetcode] Longest Substring Without Repeating Characters (Java)
- 3. Longest Substring Without Repeating Characters leetcode java
- 【JAVA、C++】LeetCode 003 Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters Leetcode Python Java
- leetcode-java.T003_LongestSubstringWithoutRepeatingCharacters 给定一个字符串,找字符中的最大非重复子串
- Java-LeetCode-Longest Substring Without Repeating Characters
- [LeetCode][3]Longest Substring Without Repeating Characters解析 -Java实现
- [leetcode-3]Longest Substring Without Repeating Characters(java)
- LeetCode_3_LongestSubstringWithoutRepeatingCharacters(Java Code)
- LeetCode java Longest Substring Without Repeating Characters
- 【LeetCode解答三】Longest Substring Without Repeating Characters问题Java解答
- [LeetCode][Java] Longest Substring Without Repeating Characters
- Java [leetcode 3] Longest Substring Without Repeating Characters
- leetcode_java_Longest Substring Without Repeating Characters
- LeetCode : Longest Substring Without Repeating Characters [java]
- leetCode Q3:Longest Substring Without Repeating Characters(java)
- java_LeetCode_3--Longest Substring Without Repeating Characters