您的位置:首页 > 其它

LeetCode 3. Longest Substring Without Repeating Characters(最长不重复子串)

2016-05-01 07:12 381 查看
原题网址:https://leetcode.com/problems/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.
方法:通过哈希表/直方图来标记字符是否出现过。

public class Solution {
public int lengthOfLongestSubstring(String s) {
if (s == null) return 0;
boolean[] has = new boolean[256];
int max = 0;
int from = 0;
char[] sa = s.toCharArray();
for(int i=0; i<sa.length; i++) {
while (has[sa[i]]) has[sa[from++]] = false;
has[sa[i]] = true;
max = Math.max(max, i-from+1);
}
return max;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: