import java.util.HashMap; import java.util.Map; public class MyStringUtils { public static int getMaxLenght(String s) { int n = s.length(); int ans = 0;//最大不连续长度 int start = 0;//重复字符串位置 int from = 0;//不重复开始的字符串开始 int last = 0;//不重复开始的字符串结束 Map<Character, Integer> map = new HashMap<>(); for (int end = 0; end < n; end++) { char alpha = s.charAt(end); if (map.containsKey(alpha)) { start = Math.max(map.get(alpha), start); } if(end - start >ans){ System.out.println(start); System.out.println(end); last = end; from = start; } ans = Math.max(ans, end - start );//最大不连续数 map.put(alpha, end ); } System.out.println(s.substring(from+1,last+1)); return ans; } public static void main(String[] args) { int wangzfabedfpo = MyStringUtils.getMaxLenght("wangzfawbaedatpo"); System.out.println(wangzfabedfpo); } }
查找一个字符串不重复最长的串
最新推荐文章于 2022-03-12 11:08:27 发布