- 暴力法求解最长回文串
#include<bits/stdc++.h> using namespace std; int main(){ string s; while(cin>>s){ int max_ = 0, flag = 0; //暴力循环确定左右边界 for(int i= 0; i< s.size();i++){ for(int j = s.size()-1; j>i ;j--){//锚点思路 flag = 0; int l,r;//动态变化的锚点。 //判断这个段上是不是回文 for(l= i,r = j; l<=(l+r)/2; l++,r--){ if(s[l]!=s[r]){ flag = 1; break;//剪枝 } } //如果这段上是回文 //那么再比这个短的就不用再看了,重新遍历下一次 if(flag==0){ max_ = max(max_,j-i+1); break;//不用在重复判断 } } } cout<<max_<<endl; } return 0; }