fork(1) download
  1. # your code goes here
  2. def addone(s):
  3. if len(s) == 1: return str(int(s) + 1)
  4. elif s[-1] == '9': return addone(s[:-1]) + '0'
  5. return s[:-1] + str(int(s[-1]) + 1)
  6.  
  7. def get_palin(raw):
  8. half = len(raw) // 2
  9. if len(raw) == 1:
  10. if raw != '9': return str(int(raw) + 1)
  11. else: return '11'
  12. elif raw[:half] == raw[-half:][::-1]:
  13. return get_palin(addone(raw))
  14.  
  15. for i in range(half - 1, -1, -1):
  16. if int(raw[i]) > int(raw[-i - 1]):
  17. return raw[:half] + raw[half:-half] + raw[:half][::-1]
  18. elif int(raw[i]) < int(raw[-i - 1]):
  19. new = addone(str(raw[:half + len(raw) % 2]))
  20. return new + new[:half][::-1]
  21.  
  22. result = []
  23. for test in range(int(input())):
  24. result.append(get_palin(input()))
  25. print(*result, sep='\n', end='')
Success #stdin #stdout 0.01s 9992KB
stdin
3
12454
1321847
12314
stdout
12521
1322231
12321