https://leetcode.com/problems/reverse-vowels-of-a-string
Q. input string s를 입력으로 받을때, 모음문자만 뒤집어서 출력하라. 이때 문자는 대,소문자 모두 등장 할 수 있다.
Key : O(N)의 TC를 가지도록 논리 전개.
string reverseVowels(string s)
{
// s에서 모음 문자만 reverse해서 반환하라.
//
string vowls = "";
for (int k = 0; k < s.length(); ++k)
{
char cur = s[k];
cur = tolower(cur);
if (cur == 'a' || cur == 'e' || cur == 'i' || cur == 'o' || cur == 'u')
vowls += s[k];
}
string ret = "";
int q = 0;
for (int k = 0; k < s.length(); ++k)
{
char cur = s[k];
cur = tolower(cur);
if (cur == 'a' || cur == 'e' || cur == 'i' || cur == 'o' || cur == 'u')
{
ret += vowls[vowls.length() - 1 - q];
++q;
}
else ret += s[k];
}
return ret;
}
Comment : 문제 자체는 평이. 조금더 최적화 여지가 있나 해서 solution들을 봤는데, 대체로 two pointer 해결들이 많았다. 추가 vowl buffer를 필요치 않고, 1 pass로 코드로직이 마감되므로, 그 방법이 더 나은 해라 할수 있겠다....
'Leetcode > LeetCode75' 카테고리의 다른 글
[Array/String][Medium] 334. Increasing Triplet Subsequence (1) | 2023.11.28 |
---|---|
[Array][String] [Medium] 151. Reverse Words in a String (2) | 2023.11.26 |
[Array/String][Easy] 605. Can Place Flowers (1) | 2023.11.25 |
[Array/String][Easy] 1431. Kids With the Greatest Number of Candies (1) | 2023.11.25 |
[Array/String][Easy] 1768. Merge Strings Alternately (2) | 2023.11.24 |