求字符串最大不重复串
Posted dongma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求字符串最大不重复串相关的知识,希望对你有一定的参考价值。
import java.util.*; public class Client { public static void main(String[] args) { String str = "abcdbe"; int i = maxSubLen(str); System.out.println(i); } /** * 求不重复字符的长度 */ static int maxSubLen(String str) { int maxLen = 0; int left = 0; int right = 0; char[] chars = str.toCharArray(); int n = str.length(); Object mapVal = new Object(); Map<Character, Object> map = new HashMap<>(); while (right < n) { Object val = map.get(chars[right]); if (val == null) {// 没有重复字符 map.put(chars[right], mapVal); right++; maxLen = Math.max(right - left, maxLen); } else {// 有重复字符 while (chars[left] != chars[right]) { left++; } left++; right++; } } return maxLen; } }
以上是关于求字符串最大不重复串的主要内容,如果未能解决你的问题,请参考以下文章
POJ - 2406 ~SPOJ - REPEATS~POJ - 3693 后缀数组求解重复字串问题