讨论 / Python2解法(核心代码7行)
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

查看更多回复
提交回复