Open robert-min opened 2 weeks ago
⏰ 소요 시간 : 15분 🗂️ 유형 : stack | two pointer
🖌️ 문제 풀이
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
# check vowels
vowels_idx = []
vowels = []
for idx, string in enumerate(s):
if lower(string) in ["a", "e", "i", "o", "u"]:
vowels_idx.append(idx)
vowels.append(string)
# input vowels
answer = list(s)
for idx in vowels_idx:
temp = vowels.pop()
answer[idx] = temp
return "".join(answer)
Two pointer 풀이
class Solution(object):
def reverseVowels(self, s):
l,r = 0,len(s)-1
vowels = set('aeiouAEIOU')
s = list(s)
while l<r:
if s[l] in vowels and s[r] in vowels:
s[l],s[r] = s[r],s[l]
l+=1
r-=1
elif s[l] in vowels:
r-=1
elif s[r] in vowels:
l+=1
else:
l+=1
r-=1
return ''.join(s)
문제 추천 이유!!
문제 링크
https://leetcode.com/problems/reverse-vowels-of-a-string/description/?envType=study-plan-v2&envId=leetcode-75
*작성가이드 입니다.
아래는 comment 템플릿입니다.(복사해서 사용)