没有显示编码算法的输出

时间:2015-06-15 18:02:21

标签: python algorithm python-2.7

我坚持以下贪污问题:

  

一只小青蛙想要到达河的另一边。青蛙是   目前位于0位,并希望到达位置X.   树叶从树上落到河面上。

     

您将获得一个由N组成的非空零索引数组A.   代表落叶的整数。 A [K]代表位置   其中一片叶片落在时间K,以秒为单位测量。

     

目标是找到青蛙可以跳到的最早时间   河的另一边。只有当叶子出现时,青蛙才能穿过   河对岸的每个位置从1到X.你可以认为是   河流中的电流速度可以忽略不计,即叶子   一旦他们落入河中,就不要改变他们的位置。

     

例如,给定整数X = 5和数组A,使得:

     

A [0] = 1 A 1 = 3 A [2] = 1 A [3] = 4 A [4] = 2 A [5] = 3
  A [6] = 5 A [7] = 4在第二个6中,叶子落入位置5.这是   叶子出现在每个位置的最早时间   河流。

     

我尝试的代码是:

def solution(X, A):
    for i in range(len(A)):       
        if A[i] == X:
            L1 =  A[i:]         
            for j in L1:
                count = 0
                if (j < X and j not in A[:i]):
                    count += 1
                    return i+count
                else:    
                    return i
X = raw_input()
A = map(int, raw_input().split())
print solution(X,A)

您可以查看完整的问题说明here 该代码仅适用于某些情况。我对python很新。请让我知道我在做错的地方。

1 个答案:

答案 0 :(得分:0)

X = raw_input()

raw_input返回一个字符串。字符串永远不会比较等于整数,因此if A[i] == X:永远不会评估为True。在调用solution之前将X转换为整数。

X = int(raw_input())

现在您的代码将生成输出:

5
1 3 1 4 2 3 5 7
6

(...虽然我没有检查它是否产生正确的输出。最好保存一个单独的问题。)