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

ตรวจสอบว่าสามารถสร้างสตริงที่สองจากอักขระของสตริงแรกใน Python . ได้หรือไม่


สมมติว่าเรามีสองสตริง s และ t เราต้องตรวจสอบว่า t สามารถสร้างโดยใช้อักขระ s ได้หรือไม่

ดังนั้น หากอินพุตเป็น s ="owleh" t ="hello" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • freq :=แผนที่ที่มีอักขระทั้งหมดและความถี่
  • สำหรับ i ในช่วง 0 ถึงขนาด t - 1 ทำ
    • ถ้า freq[t[i]] เป็น 0 แล้ว
      • คืนค่าเท็จ
    • ความถี่[t[i]] :=ความถี่[t[i]] - 1
  • คืนค่า 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