思路:
凯撒密码。收集字符串 s 里出现的字母,用 set 默认排序,得到 abcd......使字母偏移一位即可,a->b, b->c, c->d, ......, z->a
再遍历字符串 s,替换 s 的字母即可
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int MAX=1e9+7; int t,n,m; void solve(){ string s; cin>>s; set<char> se; for(int i=0;i<s.size();i++) se.insert(s[i]); if(se.size()<2) { cout<<-1; return; } map<char,char> mp; for(auto it=se.begin();it!=se.end();it++) { auto p=it; if((++p)!=se.end())mp[*it]=*(p); else mp[*it]=*se.begin(); } string t; for(int i=0;i<s.size();i++) t+=mp[s[i]]; cout<<t<<endl; } int main(){ ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); t=1; //cin>>t; while(t--){ solve(); } return 0; }