>백엔드 개발 >PHP 튜토리얼 >각 괄호 쌍 사이의 역방향 하위 문자열

각 괄호 쌍 사이의 역방향 하위 문자열

王林
王林원래의
2024-07-16 11:21:41586검색

Reverse Substrings Between Each Pair of Parentheses

1190. 각 괄호 쌍 사이의 역방향 하위 문자열

중간

영문 소문자와 괄호로 구성된 문자열 s가 주어졌습니다.

가장 안쪽부터 시작하여 일치하는 각 괄호 쌍의 문자열을 반대로 바꿉니다.

결과에 대괄호가 포함되어서는 안 됩니다.

예 1:

  • 입력: s = "(abcd)"
  • 출력: "dcba"

예 2:

  • 입력: s = "(u(love)i)"
  • 출력: "iloveu"
  • 설명: 하위 문자열 "love"가 먼저 반전된 다음 전체 문자열이 반전됩니다.

예 3:

  • 입력: s = "(ed(et(oc))el)"
  • 출력: "leetcode"
  • 설명: 먼저 하위 문자열 "oc", "etco", 마지막으로 전체 문자열을 뒤집습니다.

제약조건:

  • 1 <= s.length <= 2000
  • s에는 영문 소문자와 괄호만 포함됩니다.
  • 모든 괄호의 균형이 보장됩니다.

해결책:

단계별 계획은 다음과 같습니다.

  1. 스택을 사용하여 문자와 중첩된 괄호를 추적하세요.
  2. 문자열의 각 문자를 순회합니다.
  3. 여는 괄호 '('가 나타나면 스택에 푸시하세요.
  4. 닫는 괄호 ')'가 나타나면 여는 괄호 '('에 도달할 때까지 스택에서 팝합니다. 수집된 하위 문자열을 뒤집어 스택에 다시 푸시합니다.
  5. 마지막으로 스택 내용을 연결하여 결과를 얻습니다.

PHP로 구현한 내용은 다음과 같습니다. 1190. 각 괄호 사이의 역방향 하위 문자열






설명

  • reverseParentheses 함수는 문자열 s를 입력으로 사용합니다.
  • 스택은 문자와 중첩된 괄호를 추적하는 데 사용됩니다.
  • 문자열을 탐색하면서:
    • 닫는 괄호 )가 나타나면 여는 괄호(.
    • 를 찾을 때까지 스택에서 팝을 시작합니다.
    • 팝업된 문자(괄호 안에 있음)를 수집하고 이를 뒤집어 스택에 다시 푸시합니다.
    • 문자가 닫는 괄호가 아닌 경우 스택에 직접 푸시됩니다.
  • 마지막으로 스택 요소를 연결하여 결과 문자열을 형성하고 대괄호가 포함되지 않도록 합니다.

이 방법은 중첩된 괄호를 효율적으로 처리하고 각 괄호 쌍 내의 하위 문자열을 뒤집은 후 문자의 올바른 순서를 보장합니다.

연락처 링크

  • 링크드인
  • 깃허브

위 내용은 각 괄호 쌍 사이의 역방향 하위 문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.