Не показывает вывод для алгоритма кодирования
Я застрял со следующей проблемой кодов:
Маленькая лягушка хочет попасть на другую сторону реки. В настоящее время лягушка находится в положении 0 и хочет попасть в положение X. Листья падают с дерева на поверхность реки.
Вам дан непустой массив с нулевым индексом A, состоящий из N целых чисел, представляющих падающие листья. [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)
Вы можете проверить полное описание вопроса здесь. Код работает только в некоторых случаях. Я совершенно новичок в питоне. Пожалуйста, дайте мне знать, где я делаю ошибку.
1 ответ
X = raw_input()
raw_input
возвращает строку Строка никогда не сравнивается равной целому числу, поэтому if A[i] == X:
никогда не будет оцениваться как True. Преобразуйте X в целое число перед вызовом solution
,
X = int(raw_input())
Теперь ваш код будет выводить:
5
1 3 1 4 2 3 5 7
6
(... Хотя я не проверял, дает ли он правильный вывод. Лучше всего его сохранить для отдельного вопроса.)