zoukankan      html  css  js  c++  java
  • AcWing 779. 最长公共字符串后缀

    题目传送门

    一、知识点总结

    1、 如何控制不断的输入,最终以输入\(0\)为结束标识?

    while(cin>>n && n){
    
    }
    

    2、 如何反转一个字符串?

    reverse(s[i].begin(),s[i].end());
    

    3、 如何在两层循环中退出外层循环?
    使用一个\(bool\)型变量,标识为\(true\)时,外层判断此变量是不是\(true\)来决定是否\(break\)

    4、 如何截取字符串?

    s.substr((int)s.size()-len)  //截取最后面len个
    s.substr(0,len)              //截取前面len个	
    

    二、实现代码

    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int N = 210;
    string s[N];
    
    //n是每个输入的字符串的个数
    int n;
    
    //len是用来控制有多少个字符是相同的
    int len;
    
    int main() {
        //优化输入
        ios::sync_with_stdio(false);
    
        while (cin >> n && n) {
            //记录最大长度
            int sz = 0;
            //接收字符串数组,并且反转
            for (int i = 0; i < n; i++) {
                cin >> s[i];
                reverse(s[i].begin(), s[i].end());
                sz = max(sz, (int) s[i].size());
            }
    
            //标识
            bool flag = false;
            //遍历每一个可能的长度,没有终止边界,内部肯定存在break
            for (len = 0; len < sz; len++) {
                //遍历每一个字符串
                for (int i = 0; i < n; i++) {
                    //以每一个字符串的这一位与每一个字符串的这一位进行对比
                    if (s[0][len] != s[i][len]) {
                        flag = true;
                        break;
                    }
                }
                if (flag) break;
            }
            //字符串的相同后缀长度
            if (len > 0) {
                //还是拿第一个字符串为操作样例,把它反转回来
                reverse(s[0].begin(), s[0].end());
                //利用substr截取它的后面数len位
                cout << s[0].substr((int) s[0].size() - len) << endl;
            } else cout << "" << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    从零开始入门 K8s | 应用编排与管理
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    203. Remove Linked List Elements
    183. Customers Who Never Order
    182. Duplicate Emails
    181. Employees Earning More Than Their Managers
    1261. Find Elements in a Contaminated Binary Tree
    1260. Shift 2D Grid
  • 原文地址:https://www.cnblogs.com/littlehb/p/15457615.html
Copyright © 2011-2022 走看看