สมมติว่าเรามีสตริงข้อความและคำ (รายการสตริง) เราต้องหาคู่ดัชนีทั้งหมด [i, j] เพื่อให้สตริงย่อย text[i]...text [j] อยู่ในรายการคำ ดังนั้นหากสตริงเป็นเหมือน "ababa" และอาร์เรย์คำเป็นเหมือน ["aba", "ab"] ผลลัพธ์จะเป็น [[0,1], [0,2], [2,3], [2 ,4]]. สิ่งหนึ่งที่เราสังเกตได้คือไม้ขีดสามารถทับซ้อนกันได้ "aba" จะถูกจับคู่ใน [0,2] และ [2,4]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- res :=รายการว่าง
- สำหรับ i ในช่วง 0 ถึงความยาวของสตริง
- สำหรับ j ในช่วง i + 1 ถึงความยาวของสตริง + 1
- ถ้าสตริงย่อยของสตริงจากดัชนี i ถึง j ในคำ −
- เพิ่ม (i, j – 1) ลงในอาร์เรย์ผลลัพธ์
- ถ้าสตริงย่อยของสตริงจากดัชนี i ถึง j ในคำ −
- สำหรับ j ในช่วง i + 1 ถึงความยาวของสตริง + 1
- ผลตอบแทน
ตัวอย่าง(Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อทำความเข้าใจ −
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]]