其他分享
首页 > 其他分享> > 找到字符串的最长无重复字符子串

找到字符串的最长无重复字符子串

作者:互联网

【题目】给定一个字符串str,返回str的最长无重复子串的长度。

【要求】如果str的长度为N,请实现时间复杂度为O(N)的方法。

public class MaxUnique {
	public static int getMaxUnique(String str) {
		if (str == null || str.equals("")) {
			return 0;
		}
		char[] chas = str.toCharArray();
		int[] map = new int[256];
		for (int i = 0; i < map.length; i++) {
			map[i] = -1;
		}
		int len = 0;
		int cur = 0;
		int pre = -1;
		for (int i = 0; i < chas.length; i++) {
			pre = Math.max(pre, map[chas[i]]);
			cur = i - pre;
			len = Math.max(cur, len);
			map[chas[i]] = i;
		}
		return len;
	}
}

标签:子串,map,pre,字符,int,len,chas,str,字符串
来源: https://blog.csdn.net/gkq_tt/article/details/88078952