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

หาคำร่วมระหว่างสองประโยคใน Python (Case-insensitive)

ภาพรวม

โจทย์หาจำนวนคำที่ซ้ำกันระหว่างสองประโยค โดยไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (case-insensitive)

ตัวอย่าง

s0 = "i love python coding"

s1 = "coding in python is easy"

คำร่วม: python, coding → 2

โค้ด Python

class Solution:
    def solve(self, s0, s1):
        s0 = s0.lower()
        s1 = s1.lower()
        s0List = s0.split(" ")
        s1List = s1.split(" ")
        return len(list(set(s0List) & set(s1List)))

ob = Solution()
S = "i love python coding"
T = "coding in python is easy"
print(ob.solve(S, T))

วิธีเขียนสั้นกว่า

def common_words(s0, s1):
    return len(set(s0.lower().split()) & set(s1.lower().split()))

หมายเหตุ

  • split() โดยไม่ระบุ argument จัดการ whitespace หลายช่องได้ดีกว่า split(" ")
  • ใช้ Set intersection (&) หาคำร่วม
  • เวลา O(n+m), พื้นที่ O(n+m)

ผลลัพธ์

2