Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 한 번의 반복으로 부분 문자열 제거하기

문제 소개

문자열 s가 주어졌을 때, 문자열 전체를 한 번의 순회만으로 처리하면서 포함된 모든 "y"와 "xz"를 제거해야 합니다.

예를 들어 입력이 s = "xyxxzyyxxzx"라면, 최종 출력은 "xxxx"가 됩니다.

해결 접근 방법

파이썬의 내장 문자열 메서드인 replace()를 활용하면 이 문제를 아주 간단하게 해결할 수 있습니다. 해결 단계는 다음과 같습니다.

  • 먼저 문자열에서 "xz"를 제거한 결과를 임시 변수(temp)에 저장합니다.
  • 이후 temp에서 "y"를 모두 제거한 값을 반환합니다.

replace() 메서드는 메서드 체이닝(method chaining)이 가능하기 때문에, 두 번의 치환 작업을 한 줄의 코드로 자연스럽게 연결할 수 있습니다.

구현 예제

class Solution:
    def solve(self, s):
        return s.replace("xz","").replace("y","")

ob = Solution()
print(ob.solve("xyxxzyyxxzx"))

입력

"xyxxzyyxxzx"

출력

xxxx

동작 원리 상세 설명

위 코드가 실제로 어떻게 동작하는지 단계별로 살펴보겠습니다.

  1. 1단계 — "xz" 제거: "xyxxzyyxxzx"에서 "xz" 패턴을 찾아 제거하면 "xyxyyxx"가 됩니다.
  2. 2단계 — "y" 제거: "xyxyyxx"에서 모든 "y"를 제거하면 최종적으로 "xxxx"가 출력됩니다.

이처럼 replace()를 체인 형태로 호출하면 별도의 반복문을 작성하지 않고도 문자열 치환 작업을 깔끔하게 처리할 수 있으며, 시간 복잡도는 문자열 길이에 비례하는 O(n) 수준입니다.