寻找子串:
题目描述:
一个字符串s,在s的所有子串中,找到出现次数最多的子串,求出它的出现次数。
输入描述:
共一行,一个字符串s,仅由英文小写字母组成,1<=|s|<=10000.
输出描述:
一个正整数,表示最大出现次数。
示例1:
输入:
aba
输出:
2
单个字母的子串一定是出现次数最多的
代码:
import java.util.ArrayList;
import java.util.Scanner;
public class a3601 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String ip=in.nextLine();
int num=0;
int n=ip.length();
ArrayList<String> all=new ArrayList<String>();
for(int i=1;i<=n;i++) {
for(int j=0;j<n;j++) {
if(j+i<=n) {
all.add(ip.substring(j, j+i));
}
}
}
int nn=all.size();
for(int i=0;i<nn;i++) {
int initn=1;
for(int j=0;j<nn;j++) {
if(i!=j&&all.get(i).equals(all.get(j))) {
initn++;
}
}
if(num<initn) {
num=initn;
}
}
System.out.println(num);
}
}
}
测试用例:
/*aba
2*/
3601