Ich habe versucht, this Problem für das nächstgrößte Palindrom auf SPOJ zu lösen, aber es wirft mir einen Fehler Zeitlimit überschritten. Das ist mein Ansatz für das Problem in Python,Das nächste größte Palindrom einer Nummer finden
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
Ich weiß, dass meine Frage bekommen könnte downvoted Duplikat von mehreren Fragen wie diese zu sein, aber mein Ansatz ist nicht überall kopiert. Deshalb wollte ich wissen, was mit meinem Code nicht stimmt.
Bitte, wenn Sie auf irgendeine Art und Weise hinweisen können, dass dieser Code besser oder irgendein Testfall, die es nicht erfüllt, oder jeder andere Ansatz, der sehr hilfreich für mich sein könnte. Vielen Dank!!
Welchen Eingang verwenden Sie? –
Ich habe viele Testfälle benutzt ........ aber alle meine Testfälle sind mit meinem Code zufrieden. zum Beispiel: 65973 und das nächste Palindrome wäre 66066. – Proloy
Also, was ist deine Frage? –