문제
문자열에서 같은 알파벳이 2개 붙어 있으면 제거하고, 앞뒤 문자열을 이어 붙인다.
모든 문자를 제거할 수 있으면 1, 아니면 0을 리턴
문자열 s의 길이 : 1,000,000 이하의 자연수
문자열은 모두 소문자로 이루어짐
입출력 예시
s | return |
---|---|
baabaa | 1 |
접근
문자열에서 연속된 두개를 검출 -> 제거만 반복하면 된다.
나는 한글자씩 꺼내어 비교하는 방식으로 해결했다.
새로운 리스트를 하나 만들어 s에서 한글자씩 꺼내어 리스트의 마지막과 비교하여 같으면 지우고, 다르면 리스트에 추가하는 식
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(s):
answer = 0
lst = []
for i in s:
if len(lst) != 0:
if lst[-1] == i:
lst.pop()
continue
lst.append(i)
if len(lst):
return 0
else:
return 1