题解 | #非对称之美#
非对称之美
https://ac.nowcoder.com/acm/problem/214851
贪心
#include <bits/stdc++.h>
using namespace std;
string s;
// 判断是否全是相同字母
bool CheckSame()
{
for(int i=0;i<s.size();++i)
if(s[i]!=s[0])
return false;
return true;
}
// 判断s是不是回文串
bool IsPalindrome()
{
int left=0, right=s.size()-1;
while(left<=right)
{
if(s[left] != s[right])
return false;
left++;
right--;
}
return true;
}
int main()
{
cin >> s;
int n=s.size();
// 如果字符全相同,证明没有最长回文字符串
if(CheckSame()==true)
cout<<0;
// 如果s是回文串,返回n-1
else if(IsPalindrome()==true)
cout<<n-1;
// 如果s不是回文串,返回n,这样才是最长的
else
cout<<n;
return 0;
}