Acwing779 最长公共字符串后缀

2021-01-17 09:12

阅读:666

标签:是什么   break   eve   std   bit   out   lse   ret   比较   

题目大意:给定n个字符串,让你找到他们的最长公共字符串后缀是什么,可能为空。

分析:题目数据范围比较小,可以O(n*n)暴力匹配,即可解决这道问题。之所以写这道题的题解还是因为写字符串的题还不够多啊,菜的一批。

代码:

#includeusing namespace std;
string common(string s,string t) {
    int most = 0;
    int len = min(s.length(), t.length());
    for (int i = 0; i ) {
        if (s[i] == t[i])
            most++;
        else
            break;
    }
    return s.substr(0, most);
}
int main() {
    int n;
    while (cin >> n) {
        if (!n) break;
        string s;
        cin >> s;
        reverse(s.begin(), s.end());
        n--;
        for (int i = 0; i ) {
            string t;
            cin >> t;
            reverse(t.begin(), t.end());
            s = common(s, t);
        }
        reverse(s.begin(), s.end());
        cout  endl;
    }
    return 0;
}

Acwing779 最长公共字符串后缀

标签:是什么   break   eve   std   bit   out   lse   ret   比较   

原文地址:https://www.cnblogs.com/SwiftAC/p/12199693.html


评论


亲,登录后才可以留言!