传送门 http://codeforces.com/problemset/problem/708/A
题目大意:
给你一个字符串s,选择一个非空的子串将其循环左移一位(a要变成z),使得左移后的字符串字典序最小。
题目分析:
从头开始,遇到第一个不是a的字符开始变小,变到第一个a为止。有一个陷阱是,如果字符串为全a,要把最后一个a变为z。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin>>s;
int flag=0;
for(int i=0;i<s.length();i++) {
if(s[i]!='a') {
s[i]--;
flag=1;
}
else {
if(flag)
break;
}
}
if(!flag)
s[s.length()-1]='z';
cout<<s<<endl;
}