笔试遇到的算法题
// 给定字符串,输出其子串重复次数以及重复的子串
// "ysysys" -> "3 ys"
// "aaaaa" -> "5 a"
// "ysysysy" -> "1 ysysysy"
public class SubStringAndCount {
public static void main(String[] args) {
String string = "aaaaaa";
int len = string.length();
if (!judge(string)) {
System.out.println("1 " + string);
} else {
for (int i = 1; i < len / 2; i++) {
if (len % i == 0) {
boolean match = true;
int count = 0; // 重复的子串数量
for (int j = 0; j < len / 2; j++) {
if (string.charAt(j) != string.charAt(j + i)) {
match = false;
break;
} else {
count++;
}
}
if (match) {
System.out.println(len / i + " " + string.substring(0, i));
break;
}
}
}
}
}
// 判断字符串是否由重复子串组成
public static boolean judge(String s) {
String str = s + s;
return str.substring(1, str.length() - 1).contains(s);
}
}
1万+

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



