Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 타이핑 및 백스페이스를 수행하여 편집기에서 최종 텍스트를 찾는 프로그램

<시간/>

편집기에 입력한 문자를 나타내는 문자열 s가 있고 "<-" 기호는 백스페이스를 나타내며 편집기의 현재 상태를 찾아야 한다고 가정합니다.

따라서 입력이 s ="ilovepython<-<-ON"과 같으면 출력은 "ilovepython"이 됩니다. "ilovepython" 뒤에 두 개의 백스페이스 문자가 있으므로 마지막 두 문자를 삭제한 다음 다시 "ON"을 입력합니다. .

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • res :=새 목록
  • s의 각 i에 대해 다음을 수행합니다.
    • i가 '-'와 같고 res의 마지막 문자가 '<'와 같으면
      • res에서 마지막 요소 삭제
      • res가 비어 있지 않으면
        • res에서 마지막 요소 삭제
    • 그렇지 않으면
      • res 끝에 i 삽입
  • 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