算法题16

寻找子串:
题目描述
一个字符串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

发布了80 篇原创文章 · 获赞 1 · 访问量 1437

猜你喜欢

转载自blog.csdn.net/alidingding/article/details/104150356