【发布时间】:2018-12-01 22:00:32
【问题描述】:
我已经在 Python3 中为线性搜索编码,但没有得到所需的输出。问题如下:
你得到了一个由整数组成的大小为 N 的数组。此外,您还获得了一个元素 M,您需要找到并
如果存在,则打印该元素 M 在数组中最后一次出现的索引,否则打印 -1。考虑这个数组是 1 索引的。
输入格式:第一行由2个整数N和M组成,分别表示数组的大小和要在数组中搜索的元素。
下一行包含 N 个空格分隔的整数,表示数组的元素。 输出格式 如果存在,则打印一个整数,表示数组中最后一次出现的整数 M 的索引,否则打印 -1。
样本输入
5 11 2 3 4 1
样本输出
5
arr_len , num = input("Enter length & no to be search: ").split()
#num = int(input("Enter number to search: "))
list_of_elements = list(map(int, input("Enter array to search: ").split()))
found = False
for i in range(len(list_of_elements)):
temp = list_of_elements[i]
if(temp == num):
print('--IF cond working--')
found = True
print("%d found at %dth position"%(num,i+1))
break
if(found == False):
print("-1")
在这里查看我的代码 (https://ide.geeksforgeeks.org/FSYpglmfnz)
我不明白为什么 if 条件在 for 循环中不起作用
【问题讨论】:
-
出于显而易见的原因,
if found == False:之类的内容应表示为if not found:。 -
您在整数列表中找不到
num,因为num是一个字符串。你需要一个num=int(num)。然后您应该从列表末尾开始搜索以找到最后一次出现。
标签: python arrays python-3.x algorithm linear-search