回文子串-题解

描述

给定一个字符串,输出所有长度至少为2的回文子串。

回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。

输入描述

一个字符串,由字母或数字组成。长度500以内。

输出描述

输出所有的回文子串,每个子串一行。

子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>
using namespace std;
bool a(string s){
int len = s.size();
for(int i = 0; i < len / 2; i++){
if(s[i] != s[len - 1 - i]){
return false;
}
}
return true;
}
int main(){
string s, tmp;
cin >> s;
int len = s.size();
for(int i = 2; i <= len; i++){
for(int j = 0; j <= len - i; j++){
tmp = s.substr(j, i);
if(a(tmp)){
cout << tmp << endl;
}
}
}
return 0;
}


回文子串-题解
https://chenxi-tijie.pages.dev/2025/07/回文子串-题解/
作者
chenxi
发布于
2025年7月4日
许可协议