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

ตรวจสอบว่า String ที่สอง สร้างจากตัวอักษร String แรกได้หรือไม่ด้วย Python

โจทย์: กำหนด String s และ t ตรวจสอบว่า t สร้างจากตัวอักษรของ s ได้หรือไม่ (Frequency ต้องพอ)

ตัวอย่าง

s = "owhtlleh", t = "hello" → True

อัลกอริทึม

  1. นับ Frequency ทุกตัวอักษรใน s
  2. วนตัวอักษรใน t:
    • ถ้า freq[t[i]] == 0 → False
    • freq[t[i]] -= 1
  3. จบลูป → True

โค้ดตัวอย่าง

from collections import defaultdict

def solve(s, t):
    freq = defaultdict(int)
    for ch in s:
        freq[ch] += 1
    for ch in t:
        if freq[ch] == 0:
            return False
        freq[ch] -= 1
    return True

s = "owhtlleh"
t = "hello"
print(solve(s, t))

Input / Output

Input: "owhtlleh", "hello"
Output: True
หมายเหตุ: ตัวอย่าง Input ในต้นฉบับมีความผิดพลาด (ใช้ "apuuppa") โค้ดข้างบนใช้ตัวอย่างที่ถูกต้อง