Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คู่ดัชนีของสตริงใน Python

สมมติว่าเรามีสตริงข้อความและคำ (รายการของสตริง) เราต้องหาคู่ดัชนี [i, j] ทั้งหมดที่ทำให้สตริงย่อย text[i]...text[j] อยู่ในรายการคำ ดังนั้นถ้าสตริงคือ "ababa" และอาร์เรย์คำคือ ["aba", "ab"] ผลลัพธ์จะเป็น [[0,1], [0,2], [2,3], [2,4]] สิ่งหนึ่งที่สังเกตได้คือการจับคู่สามารถทับซ้อนกันได้ "aba" ถูกจับคู่ใน [0,2] และ [2,4]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้ −

  • res := รายการว่าง
  • for i ในช่วง 0 ถึงความยาวของสตริง
    • for j ในช่วง i + 1 ถึงความยาวของสตริง + 1
      • ถ้าสตริงย่อยของสตริงจากดัชนี i ถึง j อยู่ใน words −
        • เพิ่ม (i, j - 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]]