Hello Kent, I tried finding solution with using only strings but unfortunately reversing a number has some interesting issues - For example: take following two numbers - 002000 002000
though the final answer is 4 - arriving at it using string is stripping '0' from both left and right of both numbers. I thought it was far easier to convert it into an integer and reverse. Anyway I wasn't aware of string reversal shortcut - [::-1] ... thanx :) Following code performs in 0.50 seconds : import sys def rev(n) : m = 0 while n > 0 : r = n%10 m = m*10 + r n = n/10 return m def solve(line) : nums = line.split(' ') a = int(nums[0].strip('0')[::-1]) b = int(nums[1].strip('0')[::-1]) return rev( a + b ) if __name__ == '__main__' : N = int(sys.stdin.readline()) lines = sys.stdin.readlines() for i in xrange(N) : print solve(lines[i]) I will start working on psyco ... though not sure what is it ? Thanks again Kent. Cheers Aditya On 9/27/07, Kent Johnson <[EMAIL PROTECTED]> wrote: > > Aditya Lal wrote: > > > def rev(n) : > > m = 0 > > while n > 0 : > > m = m*10 + n%10 > > n = n/10 > > return m > > I would try reversing the numbers as strings. s[::-1] will reverse a > string s. > > > How do I improve the input reading or string parsing ? I know there > > should be a better way because the best program (at cost of memory) > > performs > 50% faster than mine. So he must have done something to > > improve input processing. > > The programs that use a lot of memory are using psyco. > > Kent > -- Aditya
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor