输入:“123545rtyuiewwer21q3q2r2qrqrq23aewqt3qr35y2yhw”,输出:45rtyuiew
import java.io.*;
import java.util.*;
public class DZY22 {
private static String longerStr = "";
private static int maxLonger = 0;
public static void getLonger(String target) {
if(target == null || target.length() == 0) {
return;
}
// 结束递归标识
boolean out = false;
StringBuffer sb = new StringBuffer();
for(int i=0; i<target.length();i++) {
String chat = target.charAt(i) + "";
if(!sb.toString().contains(chat)) {
sb.append(chat);
//判断是否已经遍历完整个字符串
if(i == target.length() -1) {
longerStr = sb.toString();
maxLonger = sb.length();
out = true;
}
} else {
if(maxLonger < sb.length() ) {
longerStr = sb.toString();
maxLonger = sb.length();
}
// 每次递归去掉首字母
target = target.substring(1);
// 不可能获得更长的子字符串了
if(maxLonger == target.length()) {
out = true;
}
break;
}
}
if(!out) {
getLonger(target);
}
}
public static void main(String[] args) {
getLonger("123545rtyuiewwer21q3q2r2qrqrq23aewqt3qr35y2yhw");
System.out.println("无重复的最长子串为:"+longerStr);
System.out.println("这个子串的长度为:"+longerStr.length());
}
}
Java找出字符串中无重复字符的最长子串
该博客探讨了如何使用Java编程解决一个问题:给定一个字符串,找出不包含重复字符的最长子串。例如,对于输入'123545rtyuiewwer21q3q2r2qrqrq23aewqt3qr35y2yhw',输出是'45rtyuiew'。

1444

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



