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

กลับลำดับสระในสตริงด้วย Python

สมมติว่าเรามีสตริงตัวพิมพ์เล็ก ภารกิจของเราคือกลับลำดับสระที่อยู่ในสตริง เช่นถ้าสตริงคือ "hello" สตริงหลังกลับสระจะเป็น "holle" สำหรับสตริง "programming" จะเป็น "prigrammong"

วิธีการแก้ปัญหา

  • รับสตริงและสร้างรายการสระพร้อมเก็บดัชนีของมัน
  • กลับลำดับรายการสระ
  • ตั้งค่า idx := 0
  • สำหรับ i := 0 ถึง ความยาวของสตริงที่กำหนด - 1:
    • ถ้า i อยู่ในรายการดัชนี:
      • นำ vowels[i] ไปใส่ในสตริงสุดท้าย
      • idx := idx + 1
    • มิฉะนั้นนำ string[i] ไปใส่ในสตริงสุดท้าย
  • คืนค่ารายการเป็นสตริง

ตัวอย่างโค้ด

class Solution:
    def reverseVowels(self, s):
        chars = list(s)
        index = []
        vowels = []
        for i in range(len(chars)):
            if chars[i] in ['a','e','i','o','u']:
                vowels.append(chars[i])
                index.append(i)
        vowels = vowels[::-1]
        final = []
        ind = 0
        for i in range(len(chars)):
            if i in index:
                final.append(vowels[ind])
                ind += 1
            else:
                final.append(chars[i])
        str1 = ""
        return str1.join(final)

ob1 = Solution()
print(ob1.reverseVowels("hello"))
print(ob1.reverseVowels("programming"))

อินพุต

"hello" "programming"

เอาต์พุต

holle prigrammong