반응형
https://leetcode.com/problems/number-of-changing-keys/
문자열을 입력받는다. "abAaAa" 와 같이 입력을 받고 키가 얼마나 변경이 되는지에 대한 카운팅을 하는 문제이다.
여기서 조건이 하나 있는데, Shift 나 Caps Lock은 키의 횟수에 카운팅이 되지 않아야한다.
그러면 어떠한 입력이 들어오던 모두 lowercase 로 변경한 후에 문자열을 체크하면서 처음 문자부터 N번 돌면서 변경이 되는 부분에서 카운팅을 하면 된다.
매우 쉬운 문제라고 볼 수 있다.
Solution
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution:
def countKeyChanges(self, s: str) -> int:
s = s.lower()
answer = 0
# 처음 문자를 가지고
origin = s[0]
# 두번째 문자부터
for i in s[1:]:
if i!=origin:
answer += 1
origin = i
return answer
|
cs |
제출 결과
속도가 느린편에 속한데, 빠른 사람들의 코드를 보면 크게 로직의 차이는 없다. 제일 빠른 사람의 코드이다.
1
2
3
4
5
6
7
8
9
|
class Solution:
def countKeyChanges(self, s: str) -> int:
s = s.lower()
count = 0
for i in range(1,len(s)):
if s[i] != s[i-1]:
count += 1
return count
|
cs |
반응형
'Algorithm' 카테고리의 다른 글
[LeetCode] 3042. Count Prefix and Suffix Pairs (0) | 2024.02.23 |
---|---|
DNA Sequence Alignment (Local Alignment) (0) | 2021.06.18 |
댓글