题目描述
现代诗如蚯蚓
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
输入
输入描述:
一行,一个字符串
输入样例:
abcabcabcabc
输出
输出描述:
一行,一个正整数表示该字符串最多能断成的截数
输出样例:
4
HINT:时间限制:1.0s 内存限制:256.0MB
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
解题思路
判断能分成几段,其实就是先判断首字母重复出现的几次,之后再判断首字母之间的字母是否也重复就行了。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String s=scanner.next();
for (int i = 1; i < s.length(); i++) {
if (s.length() % i == 0) { //判断是否能整除
if (s.charAt(0) == s.charAt(i)) { //判断第一个字母是否相同
boolean b = true;
for (int j = 0; j < s.length() - i; j++) {
if (s.charAt(j) != s.charAt(i + j)) { //判断每隔i个字母后是否相等 也就是判断是否可以分成i段
b = false;
break;
}
}
if (b) {
System.out.println(s.length() / i); //输出可以分出的段数
break;
}
}
}
}
}
}