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

ตรวจสอบสตริงที่มีตัวอักษรไม่ซ้ำใน Python

ภาพรวม

โจทย์ตรวจสอบว่าสตริงมีตัวอักษรซ้ำกันหรือไม่ คืน 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