洛谷T226686 长度为2的子串
题目描述
给你一个长度为 n 的由大写的英文字母组成的字符串,请你找出出现频率最高的长度为2的子串。
输入格式
包括两行。第一行是一个正整数n,表示字符串长度。第二行是长度为n的大写英文字母组成的字符串。(2<=n<=100)
输出格式
包括一行。一个长度为2的字符串,该字符串为输入字符串的子串,在输入字符串中出现次数最多。若有多个出现频率相同且最高的子串,输出第一次出现的那个子串。
输入输出样例
输入输出样例
输入 #1
7 ABACABA
输出 #1
AB
题解
首先按照题目要求输入字符串的长度和字符串。然后利用两个for循环计算出现频率最高的长度为2的子串。从第一个字符开始,和其他每一个字符比较。当一个字符(位置为i)对比到不是它本身时(i≠j),如果a[i]=a[j],
并且a[i+1]=a[j+1]时,说明找到一个多次出现的长度为2的字符串,那么计数(t)加一,当计数大于之前的最大计数值(m),那么t将成为新的最大计数值(t=m),并将i的值记录下来。每当外层循环进行完一次,将t清零。最后
输出出现次数最多的长度为2的字符串。
代码
#include <iostream> using namespace std; int main() { int n; string a; int i,j,t=0,m=0,x; cin>>n>>a; for(i=0;i<n-1;i++) { for(j=0;j<n-1;j++) { if(i!=j) { if((a[i]==a[j])&&(a[i+1]==a[j+1])) t++; } if(t>m) { m=t; x=i; } } t=0; } cout<<a[x]<<a[x+1]; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异