題解 | #非對稱之美#
非對稱之美
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;
}