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

ตรวจสอบว่าสตริงสามารถแปลงเป็นอีกสตริงหนึ่งโดยการแทนที่สระและพยัญชนะใน Python


สมมติว่าเรามีสตริงสองตัว 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
  • คืนค่า 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