Giả sử chúng ta có một chuỗi chữ thường. Nhiệm vụ của chúng ta là đảo ngược các nguyên âm có trong chuỗi. Vì vậy, nếu chuỗi là "xin chào", thì chuỗi sau khi đảo ngược nguyên âm sẽ là "holle". Đối với chuỗi "lập trình", nó sẽ là "prigrammong"
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Lấy chuỗi và tạo danh sách các nguyên âm, đồng thời lưu trữ các chỉ số của chúng
- đảo ngược danh sách nguyên âm
- đặt idx:=0
- cho i:=0 đến độ dài của chuỗi đã cho - 1
- nếu tôi ở trong danh sách chỉ mục -
- đặt các nguyên âm [i] vào chuỗi cuối cùng
- idx:=idx + 1
- nếu không hãy đặt chuỗi [i] thành chuỗi cuối cùng
- nếu tôi ở trong danh sách chỉ mục -
- trả về danh sách dưới dạng một chuỗi
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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"))
Đầu vào
"hello" "programming"
Đầu ra
holle prigrammong