-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpalindromes.py
More file actions
53 lines (41 loc) · 1.32 KB
/
palindromes.py
File metadata and controls
53 lines (41 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# South Central USA 2014 - 6795 - Palindrome Numbers
import random
def is_palindrome(num):
num = str(num)
for i in range(len(num)):
if num[i] != num[len(num) - 1 - i]:
return False
return True
def find_greater_palindrome(num):
if is_palindrome(num):
return num
numstr = str(num)
if len(numstr) % 2 == 0:
left = numstr[:len(numstr) // 2]
mid = ''
right = numstr[len(numstr) // 2:]
if int(right) > int(left[::1]):
left = str(int(left) + 1)
right = left[::-1]
else:
left = numstr[:len(numstr) // 2]
mid = numstr[len(numstr) // 2]
right = numstr[(len(numstr) // 2) + 1:]
if int(right) > int(left[::1]):
mid = str((int(mid) + 1) % 10)
left = str(int(left) + 1) if int(mid) == 0 else left
right = left[::-1]
return str(left) + str(mid) + str(right)
num_of_inputs = int(input())
for i in range(num_of_inputs):
num = int(input())
print(find_greater_palindrome(num))
# while True:
# randstr = ''
# for _ in range(random.randint(0, 80)):
# randstr += str(random.randint(0, 9))
# if is_palindrome(find_greater_palindrome(randstr)):
# print("Success")
# else:
# print("Failure")
# break