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에는 영문 소문자와 괄호만 포함됩니다.
- 모든 괄호의 균형이 보장됩니다.
해결책:
단계별 계획은 다음과 같습니다.
- 스택을 사용하여 문자와 중첩된 괄호를 추적하세요.
- 문자열의 각 문자를 순회합니다.
- 여는 괄호 '('가 나타나면 스택에 푸시하세요.
- 닫는 괄호 ')'가 나타나면 여는 괄호 '('에 도달할 때까지 스택에서 팝합니다. 수집된 하위 문자열을 뒤집어 스택에 다시 푸시합니다.
- 마지막으로 스택 내용을 연결하여 결과를 얻습니다.
PHP로 구현한 내용은 다음과 같습니다. 1190. 각 괄호 사이의 역방향 하위 문자열
설명
- reverseParentheses 함수는 문자열 s를 입력으로 사용합니다.
- 스택은 문자와 중첩된 괄호를 추적하는 데 사용됩니다.
- 문자열을 탐색하면서:
- 닫는 괄호 )가 나타나면 여는 괄호(.
를 찾을 때까지 스택에서 팝을 시작합니다.
- 팝업된 문자(괄호 안에 있음)를 수집하고 이를 뒤집어 스택에 다시 푸시합니다.
- 문자가 닫는 괄호가 아닌 경우 스택에 직접 푸시됩니다.
- 마지막으로 스택 요소를 연결하여 결과 문자열을 형성하고 대괄호가 포함되지 않도록 합니다.
이 방법은 중첩된 괄호를 효율적으로 처리하고 각 괄호 쌍 내의 하위 문자열을 뒤집은 후 문자의 올바른 순서를 보장합니다.
연락처 링크
위 내용은 각 괄호 쌍 사이의 역방향 하위 문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!