สมมติว่าเรามีสองสตริง s และ t เราต้องตรวจสอบว่า t สามารถสร้างโดยใช้อักขระ s ได้หรือไม่
ดังนั้น หากอินพุตเป็น s ="owleh" t ="hello" ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- freq :=แผนที่ที่มีอักขระทั้งหมดและความถี่
- สำหรับ i ในช่วง 0 ถึงขนาด t - 1 ทำ
- ถ้า freq[t[i]] เป็น 0 แล้ว
- คืนค่าเท็จ
- ความถี่[t[i]] :=ความถี่[t[i]] - 1
- ถ้า freq[t[i]] เป็น 0 แล้ว
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
from collections import defaultdict def solve(s, t): freq = defaultdict(int) for i in range(len(s)): freq[s[i]] += 1 for i in range(len(t)): if freq[t[i]] == 0: return False freq[t[i]] -= 1 return True s = "owhtlleh" t = "hello" print(solve(s, t))
อินพุต
"apuuppa"
ผลลัพธ์
True