PAT.A1077 Kuchiguse

返回目录

在这里插入图片描述

题意

输入n个字符串,求最大公共后缀

注意点

  1. 这几篇代码不同以前的代码了,因为更加使用了C++代码风格和STL库,这样的代码写起来更加方便,之前不用是想更加熟悉C风格代码
  2. 这里开始陆续对代码中使用了C++代码风格和STL库的地方做讲解
  3. cin>>为输入,cout<<为输出,如果大量使用输入输出请用printf和scanf
  4. getchar()用来吸收换行符‘\n’,如果不吸收掉程序可能输入异常或异常退出
  5. string类型是STL库里的一个很方便处理字符串的工具,其他常用的还有map,vector等
  6. getline(cin,str)用来输入一行字符串,包括空格,本题不能用scanf()输入,因为scanf()会将空格当做结束标志符
  7. 假设声明string类型str,则str.begin()会返回字符串开头指针,str.end()会返回字符串j结束指针
  8. reverse()是STL自带的函数,可以对vector,string等类型做翻转,参数为起始指针和结束指针
  9. string类型无法匹配%s,需要用ans.c_str(),转换成C风格代码
#include<bits/stdc++.h>
using namespace std;
int main(){
    int N,len=300;
    scanf("%d",&N);
    getchar();
    string input[N],ans="";
    for(int i=0;i<N;i++){
        getline(cin,input[i]);
        len=min(len,(int)input[i].size());
        reverse(input[i].begin(),input[i].end());
    }
    bool flag=true;
    for(int i=0;i<len;i++){
        for(int j=1;j<N;++j)
            if(input[j][i]!=input[j-1][i])
                flag=false;
        if(!flag)break;
        ans+=input[0][i];
    }
    reverse(ans.begin(),ans.end());
    if(ans=="")printf("nai");
    else printf("%s",ans.c_str());
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小怪兽会微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值