1. 程式人生 > >[Nowcoder] 字符串是否由字串拼接

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

ios ron nbsp ++ int size tro div 最長

給出一個非空的字符串,判斷這個字符串是否是由它的一個子串進行多次首尾拼接構成的。 例如,"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] 字符串是否由字串拼接