ภาพรวม
โจทย์หาจำนวนคำที่ซ้ำกันระหว่างสองประโยค โดยไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (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