输入格式
第一行一个数字L。
第二行是字符串S。
L大于0,且不超过S的长度。
输出格式
一行,题目要求的字符串。
输入样例1:
4
bbaabbaaaaa
输出样例1:
bbaa
给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。
输入样例2:
2
bbaabbaaaaa
输出样例2:
aa
数据规模和约定
n<=60
S中所有字符都是小写英文字母。
提示
枚举所有可能的子串,统计出现次数,找出符合条件的那个
用Java实现:给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串
答案:3 悬赏:80
解决时间 2021-02-17 00:21
- 提问者网友:不懂我就别说我变
- 2021-02-16 09:03
最佳答案
- 二级知识专家网友:滚出爷的世界
- 2021-02-16 10:08
这个可以 100分
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int L=sc.nextInt();
String s=sc.next();
Main a=new Main();
a.childs(L,s);
}
public void childs(int L,String s)
{
String s1[][]=new String[60][60];
int in[][]=new int[60][60];
int max=0;
int td=0;
int tj=0;
for(int i=L;i for(int j=0;j<=s.length()-i;j++)
{
s1[i][j]=s.substring(j,j+i);
}
for(int i=L;i for(int j=0;j<=s.length()-i;j++)
for(int k=j;k<=s.length()-i;k++)
if(s1[i][k].equals(s1[i][j]))
{
in[i][j]=in[i][j]+1;
}
for(int i=L;i<=s.length();i++)
for(int j=0;j<=s.length()-i;j++)
{
if(in[i][j]>=max && td
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int L=sc.nextInt();
String s=sc.next();
Main a=new Main();
a.childs(L,s);
}
public void childs(int L,String s)
{
String s1[][]=new String[60][60];
int in[][]=new int[60][60];
int max=0;
int td=0;
int tj=0;
for(int i=L;i for(int j=0;j<=s.length()-i;j++)
{
s1[i][j]=s.substring(j,j+i);
}
for(int i=L;i for(int j=0;j<=s.length()-i;j++)
for(int k=j;k<=s.length()-i;k++)
if(s1[i][k].equals(s1[i][j]))
{
in[i][j]=in[i][j]+1;
}
for(int i=L;i<=s.length();i++)
for(int j=0;j<=s.length()-i;j++)
{
if(in[i][j]>=max && td
全部回答
- 1楼网友:强势废物
- 2021-02-16 11:46
这个字符串类型的数字们中间有间隔的符号吗? 比如String s="13,45,56,67,34,3,763"; 如果是上面这样有分隔的符号的话,用split 例子: public static void main(String[] args) { String s="13,45,56,67,34,3,763"; String [] ss=s...
- 2楼网友:魅世女王
- 2021-02-16 10:52
这个可以 100分
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int L=sc.nextInt();
String s=sc.next();
Main a=new Main();
a.childs(L,s);
}
public void childs(int L,String s)
{
String s1[][]=new String[60][60];
int in[][]=new int[60][60];
int max=0;
int td=0;
int tj=0;
for(int i=L;i<s.length();i++)
for(int j=0;j<=s.length()-i;j++)
{
s1[i][j]=s.substring(j,j+i);
}
for(int i=L;i<s.length();i++)
for(int j=0;j<=s.length()-i;j++)
for(int k=j;k<=s.length()-i;k++)
if(s1[i][k].equals(s1[i][j]))
{
in[i][j]=in[i][j]+1;
}
for(int i=L;i<=s.length();i++)
for(int j=0;j<=s.length()-i;j++)
{
if(in[i][j]>=max && td!=i)
{
max=in[i][j];
td=i;
tj=j;
}else if(in[i][j]>max)
{
max=in[i][j];
td=i;
tj=j;
}
}
System.out.println(s1[td][tj]);
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |