aacord’s memo

abcを中心にpythonで解いた問題のメモ、整理をしています。緑になった。

CODE FESTIVAL 2016 qual A-c (python)

C - Next Letter
先頭から a に変えれそうなら a に変える、最後尾までみたときにまだ k が残っているなら k が0になるまで最後尾の文字を変える
s[ i ] を ' a ' にするときに毎回 s = s [ : i ] + ' a ' + s [ i + 1 : ] としているのは何とかならないのか

s = input()
k = int(input())
n = len(s)
for i in range(n):
  num = ord(s[i])
  if num == 97 or 123-num > k:
    continue
  k -= (123-num)
  s = s[:i] + 'a' + s[i+1:]
if k > 0:
  t = k%26
  s = s[:n-1] + chr(ord(s[n-1])+t)
print(s)