สมมติว่าเรามีสองสตริง s และ t เราสามารถเปลี่ยนอักขระในตำแหน่งใดก็ได้เป็นสระใด ๆ หากเป็นสระอยู่แล้วหรือเป็นพยัญชนะถ้าเป็นพยัญชนะอยู่แล้ว เราต้องตรวจสอบว่า s สามารถแทน t หรือกลับกันได้
ดังนั้น หากอินพุตเป็น s ="udpmva", t ="itmmve" ผลลัพธ์จะเป็น True เนื่องจากเราสามารถแปลง u -> i, d -> t, p -> m, a -> eพี>
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- s_size :=ขนาดของ s
- ถ้า s_size ไม่เหมือนกับ size ของ t แล้ว
- คืนค่าเท็จ
- สำหรับฉันอยู่ในช่วง 0 ถึง s_size ทำ
- ถ้า s[i] และ t[i] เป็นสระ ดังนั้น
- ติดตามตอนต่อไป
- มิฉะนั้น เมื่อ s[i] และ t[i] ไม่ใช่สระ ดังนั้น
- ติดตามตอนต่อไป
- มิฉะนั้น
- คืนค่าเท็จ
- ถ้า s[i] และ t[i] เป็นสระ ดังนั้น
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def isVowel(x): if x in ['a', 'e', 'i', 'o', 'u']: return True return False def solve(s, t): s_size = len(s) if (s_size != len(t)): return False for i in range(s_size): if (isVowel(s[i]) and isVowel(t[i])): continue elif ((isVowel(s[i])) == False and ( isVowel(t[i]) == False)): continue else: return False return True s, t = "udpgma", "itmmve" print(solve(s, t))
อินพุต
"udpgma", "itmmve"
ผลลัพธ์
True