ภาพรวม
โจทย์ตรวจสอบว่าสตริงมีตัวอักษรซ้ำกันหรือไม่ คืน True ถ้าทุกตัวอักษรไม่ซ้ำ (unique)
ตัวอย่าง
"hello" → มี 'l' ซ้ำ → False
"world" → ทุกตัวไม่ซ้ำ → True
โค้ด Python
class Solution:
def solve(self, s):
set_var = set(s)
return len(set_var) == len(s)
ob = Solution()
print(ob.solve('hello'))
print(ob.solve('world'))
อธิบาย
set(s)ลบตัวอักษรซ้ำ เก็บเฉพาะ unique characters- ถ้าความยาวเท่าเดิม → ไม่มีตัวซ้ำ
- เวลา O(n), พื้นที่ O(min(n, alphabet))
วิธีอื่น (Early Exit)
def is_unique(s):
seen = set()
for c in s:
if c in seen:
return False
seen.add(c)
return True
หยุดทันทีที่เจอตัวซ้ำ ไม่ต้องสร้าง set ทั้งหมด
ผลลัพธ์
False True