题解 | 小红的字符串构造

小红的字符串构造

https://www.nowcoder.com/practice/3e4b4dabc2e444e384c3ae62ac7dd84e

#include <iostream>
#include <unordered_set>
#include <vector>
#include <algorithm>
using namespace std;


string constructT(string s) {
    unordered_set<char> charSet(s.begin(), s.end());  // 提取无序字符集
    vector<char> uniqueChars(charSet.begin(),charSet.end());  // 转为数组便于操作
    if(charSet.size()<=1){
        return "-1";
    }
    string t = s;  // 初始化 t 与 s 长度相同

    // 调整顺序,右移一位,确保字符与对应位置不同
    int n = uniqueChars.size();
    for (int i = 0; i < s.size(); ++i) {
        auto mid=find(uniqueChars.begin(),uniqueChars.end(),s[i]);
        if(mid!=uniqueChars.end()){
            int mit =(mid-uniqueChars.begin()+1)%n;
            t[i]=uniqueChars[mit];
        }
    }
    return t;
}

int main() {
    string s;
    cin >> s;

    string t = constructT(s);
    cout << t << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
10-26 13:03
已编辑
门头沟学院 物流经理
在okr拆解的小太阳...:实习待过,我待的部门氛围很好,基本不加班,双休有保证。
投递正浩创新EcoFlow等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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