小红的回文子串
- 游戏开发
- 2025-09-19 15:57:01

登录—专业IT笔试面试备考平台_牛客网
代码区:
#include<bits/stdc++.h> using namespace std; const int MAX=105; string str; int step[MAX];//记录修改第i的字符串的长度为3的回文连续子串的数量 vector<string> s; void fun(){//对每个字符进行修改 for(int i=0;i<str.size();i++){//假如进行str.size()次替换 for(int j=0;j<str.size();j++){ s.push_back(string (1,str[j]));//把每次准备修改的字符串放在s中 } if((s[i]!=s[i+2]||s[i]==s[i+2])&&i+2<s.size()){ //无论以i+1为中心的左右两边的字符是否相等,都将它修改为相等 s[i]=s[i+2]; } for(int l=0;l<s.size();l++){//遍历修改i位置后的长度为3的回文连续子串的数量 if(s[l]==s[l+2]&&l+2<s.size()){ step[i]++; } } s.clear();//s字符串每次修改结束后必须清空,否则影响后续结果 } } int main(){ cin >> str; fun(); sort(step,step+str.size());//找出长度为3的回文连续子串的数量的最大值 cout << step[str.size()-1]; }欢迎各位读者提出意见。
(菜菜洛谷奋斗小日记)