题解 | 小红的字符串构造

小红的字符串构造

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

//  #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
#define all(x) x.begin(),x.end()
using namespace std;

int main() {
  ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
  string s;
  cin >> s;
  string ss = s;
  map<char, char> a;
  sort(all(s));
  s.erase(unique(all(s)), s.end());//--------去重得到字符集
  if (s.size() <= 1){//----------如果s的字符集长度<=1那么不可能实现对应字符不同
    cout << -1;
    return 0;
  }
  s.push_back(s[0]);
  size_t size = s.size();
  for (int i = 0; i < size - 1; i++){
    a[s[i]] = s[i + 1];//--------------重新循环映射,以实现对应不同
  }
  size_t ssize = ss.size();
  for (int i = 0; i < ssize; i++){
    cout << a[ss[i]];//---------利用映射输出
  }
  return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

07-25 10:31
门头沟学院 Java
求问各位大佬,笔试都考点啥
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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