편집기에 입력한 문자를 나타내는 문자열 s가 있고 "<-" 기호는 백스페이스를 나타내며 편집기의 현재 상태를 찾아야 한다고 가정합니다.
따라서 입력이 s ="ilovepython<-<-ON"과 같으면 출력은 "ilovepython"이 됩니다. "ilovepython" 뒤에 두 개의 백스페이스 문자가 있으므로 마지막 두 문자를 삭제한 다음 다시 "ON"을 입력합니다. .
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- res :=새 목록
- s의 각 i에 대해 다음을 수행합니다.
- i가 '-'와 같고 res의 마지막 문자가 '<'와 같으면
- res에서 마지막 요소 삭제
- res가 비어 있지 않으면
- res에서 마지막 요소 삭제
- 그렇지 않으면
- res 끝에 i 삽입
- i가 '-'와 같고 res의 마지막 문자가 '<'와 같으면
- res에 있는 요소를 결합하고 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, s): res = [] for i in s: if i == '-' and res[-1] == '< ': res.pop() if res: res.pop() else: res.append(i) return "".join(res) ob = Solution() print(ob.solve("ilovepython<-<-ON"))
입력
"ilovepython<-<-ON"
출력
ilovepython<-<-ON