假设我们有一个字符串s,我们必须在其中找到第一个重复出现的字符的索引。如果我们找不到重复出现的字符,则返回-1。
因此,如果输入像“ acade”,那么输出将为3,因为“ a”再次出现在索引3上。
为了解决这个问题,我们将遵循以下步骤-
定义映射字符
对于范围在0到s大小之间的i,执行
字符[s [i]]:=字符[s [i]] + 1
还给我
如果s [i]以字符为单位,则
除此以外,
返回-1
让我们看下面的实现以更好地理解-
from collections import defaultdict class Solution: def solve(self, s): chars = defaultdict(int) for i in range(len(s)): if s[i] in chars: return i else: chars[s[i]] += 1 return -1 ob = Solution()print(ob.solve("abcade"))
"abcade"
输出结果
3