-
Split a String in Balanced Strings릿코드(LEETCODE) 2020. 2. 3. 18:42반응형
https://leetcode.com/problems/split-a-string-in-balanced-strings
스택을 이용하여 문자열에 페어를 맞춰주는 문제
RLRRLLRLRL 문자열이 주어 질때 표로 그리면 아래와 같을 수 있다.
문자열 TOP DESCRIPTION R EMPTY 스택에 아무것도 없으니 삽입 RL R 스택에 탑이 임으로 POP 한다.
COUNT 증가
RLR EMPTY 스택에 아무것도 없으니 삽입 RLRL R 스택에 탑이 임으로 POP 한다.
COUNT 증가
RLRLR EMPTY 스택에 아무것도 없으니 삽입 RLRLRR R 이전 스택이 같으므로 삽입 RLRLRRL R 스택이 탑이 R 임으로 POP
스택이 비어있는지 확인 하고
COUNT 증가
RLRLRRLL R 스택이 탑이 R 임으로 POP
스택이 비어있는지 확인 하고
COUNT 증가
R 과 L 의 페어를 맞추며 R 들어오고 그다음에 L 이 들어오면 POP 을 한다.
스택이 비어 있으면 Solution 의 값을 증가 한다.
단순히 스택으로 풀 수 있는 문제
class Solution { public: int balancedStringSplit(string s) { int sol = 0; stack<char> st; for (int i = 0; i < s.size(); i++) { char code = s[i]; if (st.empty()) { st.push(code); } else { char top = st.top(); if (top == code) { st.push(code); } else { st.pop(); if (st.empty()) { sol++; } } } } return sol; } };
반응형'릿코드(LEETCODE)' 카테고리의 다른 글
709. To Lower Case (0) 2020.02.03 1323. Maximum 69 Number (0) 2020.02.03 subtract the product and sum of digits of an integer submissions (0) 2020.02.03 find numbers with even number of digits (0) 2020.02.03 decompress run length encoded list (0) 2020.02.03