本文主要是介绍384.Longest Substring Without Repeating Characters-最长无重复字符的子串(中等题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最长无重复字符的子串
题目
给定一个字符串,请找出其中无重复字符的最长子字符串。
样例
例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。
对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。挑战
O(n) 时间
题解
用哈希表辅助解题。
public class Solution {/*** @param s: a string* @return: an integer */public int lengthOfLongestSubstring(String s) {HashMap<Character,Integer> hash = new HashMap<>();int len = 0;int cur = 0;for (int i=0;i<s.length();i++){Character c = new Character(s.charAt(i));if (hash.containsKey(c)){i = hash.get(new Character(c)).intValue();hash.clear();cur = 0;}else{cur++;len = cur>len?cur:len;hash.put(new Character(s.charAt(i)),i);}}return len;}
}
Last Update 2016.11.13
这篇关于384.Longest Substring Without Repeating Characters-最长无重复字符的子串(中等题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!