Computer Science homework help
Computer Science homework help.
Input
The first line contains integer t, the number of test cases. Followed by t lines containing integers K.
Output
For each K, output the smallest palindrome larger than K in a new line.
Sample Input. Sample Output
2 818
808 2222
2133
def left_greater(number, index, sub):
return int(number[index-sub::1]) > int(number[index:])
def palindrome(number, index, length):
return number[:index] + number[length-index::1]
def increment_index(number, index, length, add):
number = str(int(number[:index+add]) + 1) + number[index+add:]
return palindrome(number, index, length)
def next_palindrome(number, length):
index = int(length//2)
if length % 2 != 0:
if number[index] <= number[index – 1]:
if left_greater(number, index, 1):
return palindrome(number, index, length)
else:
return increment_index(number, index, length, 1)
else:
return increment_index(number, index, length, 0)
else:
if left_greater(number, index, 1):
return palindrome(number, index, length)
else:
return increment_index(number, index, length, 0)
def all_9(number, length):
for n in range(length):
if number[n] != “9”:
return False
return True
test_cases = int(input())
for t in range(test_cases):
input_num = input()
num_length = len(input_num)
if all_9(input_num, num_length):
print(int(input_num) + 1)
else:
print(next_palindrome(input_num, num_length))
Note: This is the given code and needs to be fixed.