假设我们有一个文本字符串和单词(字符串列表),我们必须找到所有索引对[i,j],以便子字符串text [i] ... text [j]在单词列表中。因此,如果字符串类似于“ ababa”,而单词数组类似于[“ aba”,“ ab”],则输出将为[[0,1],[0,2],[2,3],[2 ,, 4]]。我们可以注意到,匹配项可以重叠,“ aba”在[0,2]和[2,4]中匹配。
为了解决这个问题,我们将遵循以下步骤-
res:=空列表
对于范围从0到字符串长度的i
如果字符串的子字符串从单词i到索引i到j-
将(i,j – 1)加到结果数组中
对于范围i + 1到字符串长度+ 1的j
返回结果
让我们看下面的实现以更好地理解-
class Solution(object): def indexPairs(self, text, words): result = [] for i in range(len(text)): for j in range(i+1,len(text)+1): if text[i:j] in words: result.append([i,j-1]) return result ob1 = Solution()print(ob1.indexPairs("ababa",["aba","ab"]))
"ababa" ["aba","ab"]
输出结果
[[0,1],[0,2],[2,3],[2,4]]