题解 | #小红的字符串构造#
小红的字符串构造
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道真题和解析

vivo公司福利 364人发布