• [Nowcoder] 字符串是否由字串拼接


    给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的。
    例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而"abcab"则不满足条件。
    输入描述:
    非空字符
    输出描述:
    如果字符串满足上述条件,则输出最长的满足条件的的子串;如果不满足条件,则输出false。
    输入例子1:
    abcabc
    输出例子1:
    abc


    从给定字符串的一半大小开始判断,先判断n/2是否满足条件,如果满足直接输出,如果不满足继续判断n/3,直到判断至n/i = 1为止,如果所有都不满足条件,那么输出false。

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string str;
        while (cin >> str)
        {
            int n = str.size();
            bool isOk = false;
            for (int i = n/2; i >= 1; --i)
            {
                string tmp = str.substr(0, i);
                string res;
                for (int j = 0; j < n / i; ++j)
                    res += tmp;
                if (res == str)
                {
                    cout << tmp << endl;
                    isOk = true;
                    break;
                }
            }
            if (!isOk)
                cout << "false" << endl;
        }
        return 0;
    }
  • 相关阅读:
    厕所惊魂
    感谢协助学生返校,邀请交警合影留念
    小丑杀人
    东芝Toshiba e-STUDIO打印身份证
    JavaScript
    html
    pymysql模块
    线程
    队列与进程池
    网络编程
  • 原文地址:https://www.cnblogs.com/immjc/p/9454286.html
Copyright © 2020-2023  润新知