【发布时间】:2018-10-13 00:27:03
【问题描述】:
def closest(s, queries):
for query in queries:
c = s[query]
for i in s[query:]:
if s[i] == c:
return i
else:
return -1
在上面的代码中,我有一个字符串 s = "abcaccba"(比如说),我有一个索引数组,查询 = [1, 3, 2]。我试图在这些索引处找到最接近的字符。
例如:s[1] = b 和 b 第二次出现的最接近的索引是 6。当我尝试运行上面的代码时,我得到这个错误:
File "solution.py", line 23, in closest
if s[i] == c:
TypeError: string indices must be integers
我在这里做错了什么??
【问题讨论】:
-
您的
i是字符串s中的一个字符,而不是整数。 -
试试
for i in range(len(s[query:])): -
@Varun,当我尝试它给我另一个错误:TypeError:'int' object is not iterable
-
不清楚您希望该函数做什么。与这些参数对应的预期输出是什么?
-
@PM2Ring,在上面的示例中:我希望输出 6、3 和 4 作为索引 1、3 和 2 处字符 b、a 和 c 最接近出现的索引
标签: python arrays string indexing