cqulpj 2019-01-09 07:24:26
点我顶贴
收藏
删除
#coding=gbk
# 按Jam计数法规则获取下一个数
# sl:字符集(字符串形式)
# cr:当前数字(字符串形式)
# return结果数字
# 注意:不验证当前数字的合法性
# 若当前数字已经是最大,则返回None
def Jam_next(sl, cr):
rt = list(cr)
# 从当前数字的末尾字符开始往前遍历
# 若倒数第i个字符不等于字符集中倒数第i个
# 则将当前字符到数字末尾的n个字符变成字符集中下一个字符开始的n个字符即可
ln = len(cr)
for i in range(1, ln+1):
if cr[-i] != sl[-i]:
ni = sl.index(cr[-i]) + 1
rt[-i:] = list(sl[ni:ni+i])
return ''.join(rt)
return None
# 主函数
chars = 'abcdefghijklmnopqrstuvwxyz'
ss = raw_input()
[s, e, ln] = [int(i.strip()) for i in ss.split(' ')]
sl = chars[s-1:e]
cr = raw_input().strip()
for i in range(5):
cr = Jam_next(sl, cr)
if cr == None:
break
else:
print cr