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

ตรวจสอบว่าอักขระของสตริงหนึ่งสามารถสลับเป็นรูปแบบอื่นใน Python . ได้หรือไม่


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

ดังนั้น หากอินพุตเป็น s ="worldlloeh" t ="helloworld" ผลลัพธ์จะเป็น True เนื่องจากเราสามารถสลับอักขระจาก "worldlloeh" ให้เป็น "helloworld" ได้

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

  • s_len :=ขนาดของ s, t_len :=ขนาดของ t
  • ถ้า s_len ไม่เหมือนกับ t_len แล้ว
    • คืนค่าเท็จ
  • freq :=แผนที่สำหรับเก็บอักขระทั้งหมดและความถี่ใน s
  • สำหรับฉันในช่วง 0 ถึง t_len ทำ
    • ความถี่[t[i]] :=ความถี่[t[i]] - 1
    • ถ้า freq[t[i]] <0 แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

from collections import defaultdict
def solve(s, t):
   s_len = len(s)
   t_len = len(t)
   if (s_len != t_len):
      return False
   freq = defaultdict(int)
   for char in s :
      freq[char] += 1
   for i in range(t_len) :
      freq[t[i]] -= 1
      if freq[t[i]] < 0:
         return False
   return True
s = "worldlloeh"
t = "helloworld"
print(solve(s, t))

อินพุต

"worldlloeh", "helloworld"

ผลลัพธ์

True