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

Posted immjc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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;
}

 




以上是关于[Nowcoder] 字符串是否由字串拼接的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的concat用法!

[NowCoder] 字符迷阵(网易游戏)

截取与拼接URL参数

JS判断字符串变量是否含有某个字串的方法

nowcoder3274D binary

递归方式判断某个字串是否是回文