题解 | #小易爱回文#

小易爱回文

http://www.nowcoder.com/practice/8eaa64ad417f4deeb25fbd350f2273fb

  1. 从第一个字母判断是不是回文,如果不是,把第一个字母一直加到一个答案串的首位,如果之后的字母是回文串,立马返回。
#include<bits/stdc++.h>
using namespace std;

bool isP(string s, int start){
     for(int i = start, j = s.size()-1; i<=(i+j)/2; i++, j--){
            if(s[i]!=s[j]){

                return false;
            }
      }

    return true;
}


int main(){

    string s;

    string ans;
    int flag = 0;
    while(cin>>s){
        ans.clear();

        for(int i =0; i< s.size();i++){
            if(!isP(s,i)){//如果不是,那这个字符倒着加到新字符串得第一位
               flag =1;
               ans.insert(ans.begin(),s[i]);
            }else{
                break;//如果从下一个字母开始找是回文串,直接返回。就可以涵盖原先是回文得情况
            }
        }

        if(flag==1){
            cout<<s+ans<<endl;
        }else{
            cout<<s<<endl;
        }


    }


    return 0;
}
大厂笔试题题解 文章被收录于专栏

主要是公司笔试题得一些总结

全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
什么时候才能有offer啊_:十年前我还在刺激战场研究跳伞的底层原理呢
投递牛客等公司
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务