⬆︎
×

[PAT-A] 1077 Kuchiguse

Hyplus目录

Java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    private static final int N = 110;

    private static int n;
    private static String[] s = new String[N];

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(reader.readLine());

        for (int i = 0; i < n; ++i) {
            s[i] = reader.readLine();
        }

        for (int k = s[0].length(); k > 0; --k) { // k: 后缀的长度
            boolean success = true;
            String suffix = s[0].substring(s[0].length() - k);
            for (int i = 1; i < n; ++i) {
                if (s[i].length() < k || !s[i].substring(s[i].length() - k).equals(suffix)) {
                    success = false;
                    break;
                }
            }

            if (success) {
                System.out.println(suffix);
                return;
            }
        }

        System.out.println("nai");
    }
}

C++

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;

int n;
string s[N];

int main() {
    cin >> n;
    getchar();
    for (int i = 0; i < n; ++i)
        getline(cin, s[i]);

    for (int k = s[0].size(); k > 0; --k) {    // k: len of suffix
        bool success = true;
        string suffix = s[0].substr(s[0].size() - k);
        for (int i = 1; i < n; ++i)
            if (s[i].size() < k || s[i].substr(s[i].size() - k) != suffix) {
                success = false;
                break;
            }

        if (success) {
            cout << suffix << endl;
            return 0;
        }
    }

    cout << "nai" << endl;
    return 0;
}

发表评论