[LeetCode] 345. Reverse Vowels of a String

2025. 3. 19. 17:23·코딩테스트/Python
728x90
반응형

🔗 Problem Link

https://leetcode.com/problems/reverse-vowels-of-a-string/description/


❔Thinking

  • 영단어가 주어지면, 모음(a,e,i,o,u)만을 역순으로 재배치하여 반환한다. (abe -> eba)
  • 알파벳은 소문자와 대문자를 구분한다.

💻Solution

1. 단어에 포함된 모음을 배열에 담고, 해당 배열에서 pop 하여 순서 재배치

def reverseVowels(self, s: str) -> str:
    vowels_set = set(['a','e','i','o','u','A','E','I','O','U'])
    vowels_list = []
    s = list(s)
    for char in s:
        if char in vowels_set:
            vowels_list.append(char)
    
    for i in range(len(s)):
        if s[i] in vowels_set:
            s[i] = vowels_list.pop()
    return ''.join(s)

 

2. 투 포인터를 활용하여 양쪽에서 모음을 찾고, 두 위치의 알파벳을 교환

def reverseVowels(self, s: str) -> str:
    s = list(s)
    left, right = 0, len(s)-1
    vowels = set('AEIOUaeiou')
    
    while left < right:
        while left < right and s[left] not in vowels:
            left += 1
        while left < right and s[right] not in vowels:
            right -= 1
        s[left], s[right] = s[right], s[left]
        left+=1
        right-=1
    
    return ''.join(s)

🗝️keypoint

  1. 모음의 대소문자를 구분한다.
  2. 양쪽에서 모음을 찾고 서로의 위치를 교환하면 한번에 해결할 수 있다.
저작자표시

'코딩테스트 > Python' 카테고리의 다른 글

[LeetCode] 443. String Compression  (0) 2025.03.26
[LeetCode] 238. Product of Array Except Self  (0) 2025.03.24
[LeetCode] 605. Can Place Flowers  (0) 2025.03.18
[LeetCode] 1768. Merge Strings Alternately  (0) 2025.02.26
[Programmers] Level 2. 빛의 경로 사이클  (0) 2025.02.25
'코딩테스트/Python' 카테고리의 다른 글
  • [LeetCode] 443. String Compression
  • [LeetCode] 238. Product of Array Except Self
  • [LeetCode] 605. Can Place Flowers
  • [LeetCode] 1768. Merge Strings Alternately
swwho
swwho
일상을 데이터화하다
  • swwho
    하루한장
    swwho
  • 전체
    오늘
    어제
    • 분류 전체보기 (188) N
      • ML_DL (39) N
        • MUJAKJUNG (무작정 시리즈) (18) N
        • 딥러닝 공부하기 (21)
      • 데이터사이언스 (1)
        • EDA (1)
        • 데이터과학을 위한 통계 (0)
      • 데이터엔지니어링 (2)
      • 논문리뷰 (2)
        • Computer Vision (2)
      • Python 활용하기 (12)
      • 코딩테스트 (127)
        • Python (109)
        • MySQL (14)
      • Git (3)
      • MySQL 활용하기 (0)
      • 일상 이야기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
swwho
[LeetCode] 345. Reverse Vowels of a String
상단으로

티스토리툴바