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

Python에서 각 괄호 깊이의 문자 수를 계산하는 프로그램

<시간/>

"X", "(" 및 ")" 세 문자로만 구성된 문자열이 있다고 가정합니다. 문자열에는 균형 잡힌 대괄호가 있으며 일부 "X" 사이에는 중첩된 대괄호가 재귀적으로 있을 수 있습니다. 가장 얕은 깊이부터 가장 깊은 깊이까지 s의 각 괄호 깊이에서 "X"의 수를 찾아야 합니다.

따라서 입력이 s ="(XXX(X(XX))XX)"와 같으면 출력은 [5, 1, 2]

가 됩니다.

Python에서 각 괄호 깊이의 문자 수를 계산하는 프로그램

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

  • 깊이:=-1
  • out :=새 목록
  • s의 각 c에 대해
    • c가 "("와 같으면
      • 깊이 :=깊이 + 1
    • 그렇지 않으면 c가 ")"와 같을 때
      • 깊이 :=깊이 - 1
    • 깊이가 out의 크기와 같으면
      • 끝에 0 삽입
    • c가 "X"와 같으면
      • 외부[깊이] :=외[깊이] + 1
  • 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(s):depth =-1 out =[] for c in s:if c =="(":depth +=1 elif c ==")":depth -=1 if depth ==len(out):out.append(0) if c =="X":out[깊이] +=1 return outs ="(XXX(X(XX))XX)"print(solve(s)) 

입력

"(XXX(X(XX))XX)"

출력

[5, 1, 2]