03 | #循环单词#

/* 采用排序+哈希可以快速解决此问题 */
#include <bits/stdc++.h>
using namespace std;

int n = 0;
string calc(string s){
    vector<string> v;
    int m = s.length();
    for (int i = 0; i < m; i++) {
        string tmp = s;
        for (int j = 0; j < m; j++) {
            tmp[j] = s[(j + i) % m];
        }
        v.push_back(tmp);
    }
    sort(v.begin(),v.end());
    return v[0];
}

int main() {
    set<string> s;
    cin >> n;
    for (int i = 0; i < n; i++) {
        string x;
        cin >> x;
        s.insert(calc(x));
    }
    cout << s.size() << endl;
}
每日算法 文章被收录于专栏

每日算法、玩转技术、聪明理财、幸福生活!

全部评论

相关推荐

轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
StephenZ_:我9月份找的第一段实习也是遇到这种骗子公司了,问他后端有多少人和我说7个正职,进去一看只有一个后端剩下的都是产品前端算法(没错甚至还有算法)。还是某制造业中大厂,我离职的时候还阴阳怪气我
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务