演算法提高 現代詩如蚯蚓
阿新 • • 發佈:2018-12-11
問題描述
現代詩如蚯蚓 斷成好幾截都不會死 字串斷成好幾截 有可能完全一樣 請編寫程式 輸入字串 輸出該字串最多能斷成多少截完全一樣的子串
輸入格式
一行,一個字串
輸出格式
一行,一個正整數表示該字串最多能斷成的截數
樣例輸入
abcabcabcabc
樣例輸出
4
樣例說明
最多能斷成四個”abc”,也就是abc重複四遍便是原串 同時也能斷成兩個”abcabc” 最壞情況是斷成一個原串”abcabcabcabc”
資料規模和約定
字串長度<=1000
#include <iostream> #include <string> using namespace std; int main() { string s; cin >> s; int len = s.length(); int flag = 0; int ans = len; for(int i = 1; i < len/2; i++) { if(len % i) continue; flag = 0; string t1, t2; t1 = s.substr(0, i); for(int j = i; j < len; j = j + i) { t2 = s.substr(j, i); if(t2 != t1) { flag = 1; break; } } if(flag == 0) ans = ans < i ? ans : i; } cout << len / ans; return 0; }