星空's Blog
星空's Blog
PAT-A1077 Kuchiguse

原题

Kuchiguse (20 分)

题解

题目的意思是输出最长公共后缀
首先处理输入,因为输入的字串带空格,所以得用getline()获取输入,这里需要注意吸收掉输入n时的换行符
因为要倒着找,所以处理输入时反转字符串,存储到vector里
以最短的字符串为基准,对vector进行一次排序找到最短字符串
比较基准字符串和其余字符串的对应位置,都相同就保存至结果字符串中,若结果字符串不为空,反转结果字符串,得到答案输出。

代码

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main(void) {
    int n;
    cin >> n;
    getchar();
    vector<string> v;
    for (int i = 0;i < n;i++) {
        string s;
        getline(cin,s);
        reverse(s.begin(),s.end());
        v.push_back(s);
    }
    string result;
    sort(v.begin(),v.end());
    for (int i = 0;i < v[0].length();i++) {
        char ch = v[0][i];
        bool eq = true;
        for (int j = 1;j < n;j++) {
            if (ch != v[j][i]) {
                eq = false;
                break;
            }
        }
        if (eq) {
            result = result + ch;
        } else {
            break;
        }
    }
    if (result.length()) {
        reverse(result.begin(),result.end());
        cout << result << endl;
    } else {
        cout << "nai" << endl;
    } 
    return 0;
}
所有文章禁止转载。
代码仅供参考
为了对抗广告机器人,首次留言将会被审核
首页      算法学习      PAT-A      PAT-A1077 Kuchiguse
https://secure.gravatar.com/avatar/271861a23dcdde929d3ee8cb8c04f854?s=256&d=monsterid&r=g

星空

文章作者

发表评论

textsms
account_circle
email

星空's Blog

PAT-A1077 Kuchiguse
原题 Kuchiguse (20 分) 题解 题目的意思是输出最长公共后缀 首先处理输入,因为输入的字串带空格,所以得用getline()获取输入,这里需要注意吸收掉输入n时的换行符 因为要倒着找,所以处…
扫描二维码继续阅读
2019-08-28
分类
标签云