0
点赞
收藏
分享

微信扫一扫

CodeForces 708A. Letters Cyclic Shift(字符串)

慕容冲_a4b8 2022-01-21 阅读 50
c++算法

题目意思大概是:从仅有小写字母组成的字符串s中挑选出一个非空子串,将该子串中的每个字母均替换成前一个字母,如'b'换成'a','c'换成'b',以此类推,特别的,'a'要换成'z'。

问经过一次转换之后,字典序最小的字符串s为多少

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    map<char,char>mp;
    int k=0;
    for(k=0;k<s.size();k++)if(s[k]!='a')break;
    mp['a']='a';
    for(char i='b';i<='z';i++)mp[i]=i-1;
    for(int i=k;i<s.size();i++){
        if(s[i]=='a')break;
        else s[i]=mp[s[i]];
    }
    if(k==s.size())s[s.size()-1]='z';
    cout<<s<<endl;
    return 0;
}
举报

相关推荐

0 条评论