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 发布
该博客展示了一段Java代码,定义了MyStringUtils类,其中getMaxLenght方法用于计算字符串中最大不连续长度。通过遍历字符串,利用HashMap记录字符位置,不断更新最大不连续长度,最后输出结果。
287

被折叠的 条评论
为什么被折叠?



