문제
문자열 s과 정수가 주어 지면 길이가 있는 하위 문자열에서 모음 문자의 최대 개수를k 반환합니다 .sk
영어의 모음 글자'a' 는 , 'e', 'i', 'o', 입니다 'u'.
예시 1:
입력: s = "abciiidef", k = 3
출력: 3
설명: 하위 문자열 "iii"에는 3개의 모음 문자가 포함되어 있습니다.
예 2:
입력: s = "aeiou", k = 2
출력: 2
설명: 길이가 2인 하위 문자열에는 모음 2개가 포함됩니다.
예시 3:
입력: s = "leetcode", k = 3
출력: 2
설명: "lee", "eet" 및 "ode"에는 2개의 모음이 포함됩니다.
제약:
- 1 <= s.length <= 105
- s영문 소문자로 구성됩니다.
- 1 <= k <= s.length
코드
class Solution {
public int maxVowels(String s, int k) {
int max=0;
int current=0;
// 첫번째 k사이즈 내에서 모음 값
for(int i=0; i<k; i++){
if(isVowel(s.charAt(i))){
// 처음이 최대값
max++;
}
}
// 최대값이자 현재값
current = max;
for(int i=k; i<s.length(); i++){
// 오른쪽으로 움직일 때 모음이 있을 경우 ++
if(isVowel(s.charAt(i))){
current++;
}
// 오른쪽으로 움직이면 왼쪽은 하나가 빠짐으로 모음일경우 --
if(isVowel(s.charAt(i-k))){
current--;
}
// max 재정리
max = Math.max(max,current);
}
return max;
}
public boolean isVowel(char c){
return 'a'==c || 'e'==c || 'i'==c || 'o'==c || 'u'==c;
}
}
'코테 > 알고리즘' 카테고리의 다른 글
[leetcode 75 198.House Robber] - DP, Math.max (1) | 2024.03.22 |
---|---|
[leetcode 75 746.Min Cost Climbing Stairs] - DP, Math.min() (1) | 2024.03.22 |
[leetcode 283. Move Zeroes 0으로 이동] - 투포인터 (0) | 2024.02.08 |
[leetcode 872. Leaf-Similar Trees 잎과 유사한 나무] - Tree (1) | 2024.02.08 |
[leetcode 841. Keys and Rooms 열쇠의 방] - DFS (0) | 2024.02.08 |