1 / 3
Aug 2009

Hi Everyone,i got a NZEC runtime error.but i don't known how to solve it ?can any one help me out?
the problems is "5. The Next Palindrome", http://www.spoj.pl/problems/PALIN/

def palindrome(num):
    length=len(num)
    num_9=0
    for i in xrange(length):
        if num[i]=="9":
            num_9+=1
    if num_9==length:
        q_num=""
        for i in xrange(length):
            q_num+="0"
        q_num="1"+q_num[1:]+"1"
        return q_num
    if length%2==1:
        if num[:length/2]>num[::-1][0:length/2]:
            num=num[:length/2]+num[length/2]+num[:length/2][::-1]
        else:
            if num[length/2]==9:
                num=str(int(num[:length/2-1])+1)+num[length/2:-1]
            else:
                num=str(int(num[:length/2+1])+1)+num[length/2+1:-1]
            num=num[:length/2]+num[length/2]+num[:length/2][::-1]             
    else:
        if num[:length/2]>num[::-1][0:length/2]:
            num=num[:length/2]+num[:length/2][::-1]
        else:
            num=str(int(num[:length/2])+1)+num[length/2+1:-1]
            num=num[:length/2]+num[:length/2][::-1]
    return num
count=int(raw_input())
t=[]
for i in xrange(count):
    t.append(raw_input())
print apply(palindrome,t)
    
  • created

    Aug '09
  • last reply

    Aug '09
  • 2

    replies

  • 194

    views

  • 2

    users

  • 1

    link

That's easy to find out: Just start your script with the given testcase and you'll get an error message:

2
808
2133
Traceback (most recent call last):
  File "palin.py", line 37, in <module>
    print apply(palindrome,t)
TypeError: palindrome() takes exactly 1 argument (2 given)

blush
sorry,the code was as follows:

count=int(raw_input())
for i in xrange(count):
    num=raw_input()
    print palindrome(num)

it was time limit exceeded ,so i thought that changing it with apply() maybe improve the program .
but i misused the function without mind.