文章

124

粉丝

0

获赞

142

访问

9.1k

头像
周期字符串 题解:
P1622
发布于2026年2月2日 11:05
阅读数 93

#include<bits/stdc++.h>
using namespace std;

int findMinPeriod(const string &s) {
    int len = s.length();
    for (int k = 1; k <= len; k++) {
        if (len % k != 0) 
			continue;
        bool ok = true;
        for (int i = k; i < len; i += k) {
            if (s.substr(i, k) != s.substr(0, k)) {
                ok = false;
                break;
            }
        }
        if (ok) 
			return k;
    }
    return len; // 如果没有更小周期,则周期为字符串长度
}

int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s; // 读取测试字符串
        cout << findMinPeriod(s) << endl;
        if (i != n-1) cout << endl; // 输出空行分隔,最后一个测试用例后不输出空行
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发