1, 回文序列判断
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
string reverse(string str)
{
int n = str.length();
for(int i=0;i<n/2;i++)
{
swap(str[i],str[n-i-1]);
}
return str;
}
bool isPalindrome(string a)
{
return reverse(a)==a;
}
int main()
{
string s;
cin>>s;
if(isPalindrome(s))cout<<"YES";
else cout<<"NO";
return 0;
}
2,
#include<iostream>
using namespace std;
string reverse(string str)//将字符串反转
{
int n = str.length();
for(int i=0;i<n/2;i++)
{
swap(str[i],str[n-i-1]);
}
return str;
}
bool isPalindrome(string a)//判断字符串是否相等
{
return reverse(a)==a;
}
int main()
{
string s;
cin>>s;
for(int k=2;k<=s.size();k++)
for(int i=0;i<s.size()-k+1;i++)
if(isPalindrome(s.substr(i,k)))
cout<<s.substr(i,k)<<'\n';
return 0;
}