https://leetcode.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length/description
Q. s string 안에서 길이가 k인 모든 substring 중 그 안의 가능한 최대 모음의 개수를 반환하라.
Solution. 역시 전형적인 sliding window 문제. 이런 류의 문제풀이의 핵심중의 하나는 연산을 누적해서 계산해야 한다는 것이다. 즉 조건이 만족될때, 문제가 요구하는 것을 찾으려고 하면 중복 연산이 된다는 것이다.
이런 류의 복잡한 문제들이 계속 나올 것이므로, 여기서는 그냥 skip.
int maxVowels(string s, int k)
{
int left = 0;
int cntVowl = 0; // key.
int ret = 0;
for (int right = 0; right < s.length(); ++right)
{
char cur = s[right];
if (cur == 'a' || cur == 'e' || cur == 'i' || cur == 'o' || cur == 'u')
++cntVowl;
if (right - left + 1 == k)
{
ret = max(ret, cntVowl);
cur = s[left++];
if (cur == 'a' || cur == 'e' || cur == 'i' || cur == 'o' || cur == 'u')
--cntVowl;
}
}
return ret;
'Leetcode > LeetCode75' 카테고리의 다른 글
[Sliding Window][Medium] 1493. Longest Subarray of 1's After Deleting One Element (1) | 2023.12.05 |
---|---|
[Sliding Window][Medium] 1004. Max Consecutive Ones III (2) | 2023.12.05 |
[Sliding Window][Easy] 643. Maximum Average Subarray I (1) | 2023.12.03 |
[Two Pointers][Medium] 1679. Max Number of K-Sum Pairs (0) | 2023.12.02 |
[Two Pointers][Medium] 11. Container With Most Water (1) | 2023.12.01 |