问题 5812 --3. 字符串变换 (change)

5812: 3. 字符串变换 (change)

题目描述

输入一个长度不超过100000的非空字符串s,从其中抽取出一个非空子串t,将t中除了`a`以外的字母全部变小一个,即`z`变为`y`,`y`变为`x`,依次类推,`b`变为`a`,额外的将`a`变为`z`,最后将变换后的t串放回到s串中原来所在的位置,得到新的字符串s’。现在对于给定的s,只能选其中的一个子串t,对t中的所有字母变换一次,求这样操作能够得到的字典序最小的s’。

输入

输入文件只有一行,一个长度不超过100000的仅包含小写字母的非空字符串s。

输出

输出文件只有一行,包含一个经过变换后得到的字典序最小的字符串。

样例输入输出

输入#1 复制
abacaba
输出#1 复制
aaacaba
输入#2 复制
aaaaaa
输出#2 复制
aaaaaz
输入#3 复制
aaabcdbcdaaaaa
输出#3 复制
aaaabcabcaaaaa

提示

样例1说明:选择第2个字母’b’作为子串,将其变换为’a’ 样例3说明:选择第4个字母到第9个字母作为子串,将其变换为abcabc,替换到原来的字符串中 【数据规模与约定】 对于50%的数据,输入的字符串长度不超过100 对于100%的数据,输入的字符串长度不超过100000 【备注】 字典序:两个字符串A和B比较大小,先比较第一个字符,如果A中的第一个字母比B中的第一个字母小,则字典序中A排在B的前面;反之,如果A中的第一个字母比B中的第一个字母大,则字典序中B排在A的前面;如果A中的第一个字母和B中的第一个字母一样,则继续比较第二个;依次类推。比如”abcd”比”abcde”小,”abcdef”比”abdcb”小。
序号 标题 作者 发表时间 费用 订购数 操作