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;
    }
    
  • 相关阅读:
    python little things
    python unittest
    install Pycrypto on windows
    share directory in virtualbox
    django template设置
    echarts使用记录
    node下图片自动处理
    Mac OS X 访问 Windows 共享文件夹
    django 登录配置记录
    【转】让iframe在iOS设备手机浏览器上支持滚动
  • 原文地址:https://www.cnblogs.com/littlehb/p/15457615.html
Copyright © 2011-2022 走看看