【OpenJudge 1734】回文子串

总时间限制:  1000ms        内存限制:  65536kB

描述

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

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

输入

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

输出

输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。

样例输入

123321125775165561

样例输出

33
11
77 
55 
2332 
2112 
5775 
6556 
123321 
165561

AC代码:

#include<iostream>
using namespace std;
bool ishuiwen(string s){
	int len = s.length();
	for(int i = 0, j = len - 1; i < len; i++, j--){
		if(s[i] != s[j]){
			return false;
		}
	}
	return true;
}
int main(){
	string s;
	cin >> s;
	int len = s.length();
	for(int i = 2; i < len; i++){
		for(int j = 0; j <= len - i; j++){
			if(ishuiwen(s.substr(j, i))){
				cout << s.substr(j, i) << endl;
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42522886/article/details/88414236