蓝桥杯 算法训练 字串统计 JAVA

xiaoxiao2021-02-28  108

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; class Main{ static StringBuilder s; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); s = new StringBuilder(br.readLine()); HashSet<String> set = new HashSet<>(); String s2=""; int a[] = new int[s.length()-n]; int max = 0; int start = 0; int end = 0; while(n<=s.length()){ for (int i = 0; i <= s.length()-n; i++) { s2 = s.substring(i, i+n); if(set.add(s2)){ int num=getNum(s,s2); if(num > max || (max==num &&(end - start)<(n))){ start = i; end = i+n; max = num; } } } n++; } System.out.println(s.substring(start, end)); } private static int getNum(StringBuilder s2, String s22) { int num = 0; int index = s2.indexOf(s22, 0); while(index!=-1){ num++; index = s2.indexOf(s22, index+1); } return num; } }
转载请注明原文地址: https://www.6miu.com/read-74092.html

最新回复(0)