题解 | #密码截取#

密码截取

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;
}
全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务