题解 | #小红的字符串构造#

小红的字符串构造

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

#include <iostream>
#include <map>
#include<vector>
#include <unordered_map>
using namespace std;

int main(){
    string s;
    cin >> s;
    unordered_map<char, bool> p; // 记录出现的字符
    unordered_map<char, char> res; // 记录上一个出现的字符 下一个出现的字符
    vector<char> vec; // 去重后 不同的字符
    for(char& ch : s){
        if(!p[ch]) vec.push_back(ch);
        p[ch] = true;
    }
    int n = vec.size();
    // 如果只有一个字 就-1
    if(n < 2) cout << -1 << endl;
    // 把每个字符变成下一个出现的字符
    for(int i = 0; i < n; i ++) res[vec[i]] = vec[(i + 1) % n];
    for(int i = 0; i < s.length(); i ++) cout << res[s[i]];
    return 0;
}

全部评论

相关推荐

能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
07-09 19:25
门头沟学院 Java
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:裁人的时候一次性追回餐费
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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