321
社区成员




编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数字。 字母表中共有26个字母{a,b,…,z},这些特殊的单词长度不超过6且字母按升序排列。把所有这样的长度相同的单词放在一起,按字典顺序排列,一个单词的编码就对应着它在整个序列中的位置。 你的任务就是对于所给的单词,求出它的编码。
今天周赛碰到了,前两天每日一练也碰到了,可是前两天没耐心做这个题目,结果今天没得分。。。算了,用暴力方法先做一遍吧
s = input()
if list(s) != sorted(s):
print(0)
else:
cs = ' abcdefghijklmnopqrstuvwxyz'
z = [cs.index(c) for c in (' ' + s)[-6:]]
z = [v if i == 0 else z[i] - z[i - 1] for i,v in enumerate(z)][::-1]
ans,v = 1,[1,0,0,0,0,0]
while v != z:
ans += 1
v[0] += 1
j = 0
while v[j] > 26 or sum(v[:j + 1]) > 26 - sum(v[j + 1:]):
v[j] = 1
v[j + 1] += 1
j += 1
t = [x for x in v if x > 0][::-1]
t = [sum(t[:i + 1]) for i,x in enumerate(t)]
print(ans)