สมมติว่าเรามีสตริงสองตัว s และ t เราสามารถเปลี่ยนตัวอักษรที่ตำแหน่งใดก็ได้เป็นสระใดก็ได้หากมันเป็นสระอยู่แล้ว หรือเป็นพยัญชนะใดก็ได้หากมันเป็นพยัญชนะอยู่แล้ว เราต้องตรวจสอบว่า s สามารถแทนที่เป็น t หรือในทางกลับกันได้หรือไม่
เช่น ถ้าอินพุตเป็น s = "udpmva", t = "itmmve" ผลลัพธ์จะเป็น True เนื่องจากเราสามารถแปลง u -> i, d -> t, p -> m, a -> e
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- s_size := ขนาดของ s
- ถ้า s_size ไม่เท่ากับขนาดของ t แล้ว
- คืนค่า False
- สำหรับ i ในช่วง 0 ถึง s_size ทำ
- ถ้า s[i] และ t[i] เป็นสระทั้งคู่ แล้ว
- ไปรอบต่อไป
- มิฉะนั้นถ้า s[i] และ t[i] ไม่ใช่สระทั้งคู่ แล้ว
- ไปรอบต่อไป
- มิฉะนั้น
- คืนค่า False
- ถ้า 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