题解 | #密码截取#

密码截取

http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

中心扩展法求解

#include <bits/stdc++.h>
using namespace std;
int maxL(string s,int l,int r){//中心扩散法
    int n=s.length();
    while(l>=0 && r<n){
        if(s[l]==s[r]){
            l--;
            r++;
        }else break;
    }
    return r-l-1;//此时扩展后s[l]与s[r]已经不相等,故长度为r-l减去1
}
int main(){
    string s;
    cin>>s;
    int i=0,n=s.length(),ans=0;
    for(i=1;i<n;i++){
        ans=max(ans,maxL(s,i,i));//处理n为奇数对称的情况
        ans=max(ans,maxL(s,i,i-1));//处理n为偶数对称的情况
    }
    cout<<ans;
    return 0;
}
全部评论

相关推荐

投递大华股份等公司10个岗位
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务