擅长:python、mysql、java
<p>这是通过创建带有索引的元组来实现的,如果元组中的字符相同,则比较两个索引之间差异的abs值。当创建<code>s_lst</code>时,<code>queries</code>中的元组被省略,以避免与自身匹配</p>
<pre><code>s = 'adarshravi'
queries = [2, 4]
queries = [(i, s[i]) for i in queries]
s_lst = [(i, v) for i, v in enumerate(s) if any(v in x for x in queries)]
s_lst = [i for i in s_lst if not any(i[0] in x for x in queries)]
res = []
for i in queries:
if not any(i[1] in x for x in s_lst):
res.append(-1)
else:
close = None
for j in s_lst:
if j[1] == i[1] and close == None:
close = j
elif abs(j[0] - i[0]) < abs(close[0] - i[0]):
close = j
res.append(close[0])
print(res)
# [0, -1]
</code></pre>