【PAT甲级】1077. Kuchiguse (20)

注意:
1. getline()可能get到空行,需要过滤一下
2. 头文件algorithm中的reverse可以对字符串进行反转
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
int findMinLength(vector<string> v);

int main() {
    int n;
    cin >> n;
    vector<string> v;
    string line;
    for (int i = 0; i < n; i++) {
        getline(cin, line);
        if (line.empty()) {
            i--;
            continue;//
        }
        reverse(line.begin(), line.end());
        v.push_back(line);
    }
    int m = findMinLength(v);
    int count = 0;
    bool flag = true;
    for (int i = 0; i < m && flag; i++) {
        char c = v[0].at(count);
        for (int j = 0; j < n; j++) {
            if (c != v[j].at(count)){
                flag = false;
                break;
            }
        }
        if (flag) count++;
    }
    if (!count) cout << "nai" << endl;
    else {
        reverse(v[0].begin(), v[0].end());
        cout << v[0].substr(v[0].length() - count) << endl;;
    }
    return 0;
}
int findMinLength(vector<string> v) {
    int min = v[0].length();
    for (int i = 0; i < v.size(); i++) {
        if (v[i].length() < min)
            min = v[i].length();
    }
    return min;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值