处理python中的长输入

时间:2018-03-21 18:53:38

标签: python

我一直在Google Code Jam上练习以前的比赛,这是我第一次处理像这样的长输入。

问题是,如果数字按升序排序,则称为整数,代码将打印介于1和N之间的最后整理数字.1到21之间的最后一个整洁数字是19。 第一行是测试用例的数量,然后是每个案例的数字N.

我编写的代码完全适用于短整数但是当我输入长整数时它就停止了。

这是我的代码:

def isTidy(num):
if len(str(num)) == 1:
     return 1
number = str(num)
arr = []
arr2 = []
i = 0
while i < len(number):
    arr.append(number[i])
    i+=1
j=0
while j< len(number):
    arr2.append(number[j])
    j+=1
arr2.sort()
if arr == arr2:
    return 1
else:
    return 0

cases = int(raw_input())
i=0
tidy = -1
while i<cases:
number=raw_input()
j=1
while j < int(number) +1:
    if isTidy(j):
        tidy = j;
    j+=1
print "Case #"+str(i+1)+": " +str(tidy)   
i+=1

这是I/O

10
132
1000
7
111111111111111110
905
391458953027532635
723897627649600590
11122233441
412223334467890000
522444557790

Case #1: 129
Case #2: 999
Case #3: 7

它只是在案例3之后停止输出,没有例外。

0 个答案:

没有答案