给定一个长度为n的字符串S和有一个数字a,统计长度大于等于a的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。 编程要求:第一行输入数字a。第二行输入字符串S。笫3行输出结果
时间: 2024-05-27 13:10:56 浏览: 187
输入示例:
2
abababa
输出示例:
3
aba
解释:长度大于等于2的子串有ab, ba, ab, ba, ab, ba, aba, bab, aba, bab, abab, baba, ababa, babab, ababab, bababa。其中aba出现了3次,最长,且第一次出现最早。
相关问题
C语言:给定一个长度为n的字符串S和有一个数字a,统计长度大于等于a的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。编程要求:第一行输入数字a。 第二行输入字符串S。第三行输出结果
输入样例:
3
abcbcbcbcd
输出样例:
3
bcbc
解题思路:
1. 遍历所有长度大于等于a的子串,存储在一个字符串数组中。
2. 对字符串数组进行排序,按照出现次数从大到小排序,如果出现次数相同,则按照长度从大到小排序,如果长度也相同,则按照第一次出现的位置从小到大排序。
3. 输出排完序后的第一个元素,即为出现次数最多且长度最长、第一次出现最早的子串。
AC代码:
使用C语言编码:给定一个长度为n的字符串S和有一个数字a,统计长度大于等于a的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。编程要求:第一行输入数字a。 第二行输入字符串S。第三行输出结果
示例输入:
3
abcabcabcabc
示例输出:
abc
解释:长度大于等于3的子串有abc, bca, cab, abc, bca, cab, abc, bca, cab, abc, abc, bca, cab, abc, abc, abc, bca, cab, abc, abc, abc, abc, bca, cab, abc。其中abc出现次数最多,且是最长的,输出abc。
阅读全文