Я пытался решить проблему для следующего по величине палиндрома на SPOJ, но это бросает мне лимит времени Превышенная ошибка. Это мой подход к проблеме в питоне,Нахождение следующего большого палиндрома числа
t = int(raw_input().strip())
for i in range(t):
a = raw_input()
a = str(int(a) + 1)
palin = ""
if (len(a) % 2 == 0):
reverseoffirst = []
mainStr = a
firsthalf = mainStr[0:len(a)/2]
secondhalf = firsthalf[::-1]
palin = "".join(firsthalf) + "".join(secondhalf)
if (int(palin) < int(a)):
firsthalf = str(int(firsthalf) + 1)
secondhalf = firsthalf[::-1]
palin = "".join(firsthalf) + "".join(secondhalf)
else:
median = len(a)/2
mainStr = a
if(median == 0):
palin = "11"
else:
firsthalf = mainStr[0:median]
secondhalf = firsthalf[::-1]
palin = "".join(firsthalf) + mainStr[median] + "".join(secondhalf)
if (int(palin) < int(a)):
lastvalue = int(mainStr[median]) + 1
if (lastvalue == 10):
firsthalf = str(int(firsthalf) + 1)
secondhalf = firsthalf[::-1]
palin = firsthalf + "0" + secondhalf
else:
palin = firsthalf + str(lastvalue) + secondhalf
print palin
Я знаю, что мой вопрос может получить downvoted за то, что дубликат несколько вопросов, как это, но мой подход не копируется из любого места. Вот почему я хотел знать, что не так с моим кодом.
Пожалуйста, если вы можете указать любой способ, которым этот код может получить лучше или какой-либо тест, который он не удовлетворяет, или какой-либо другой подход, который был бы очень полезен для меня. Спасибо!!
Какой вклад вы используете? –
Я использовал множество тестовых таблиц ........, но все мои тестовые коды удовлетворены моим кодом. например: 65973, а ближайший палиндром будет 66066. – Proloy
Итак, в чем ваш вопрос? –