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

파이썬에서 주어진 문자열 s의 가능한 모든 문자 조합 목록을 찾는 프로그램

<시간/>

문자열 s가 있다고 가정합니다. s의 가능한 모든 조합을 찾아야 합니다. 동일한 문자 집합을 가진 두 개의 문자열이 있는 경우 사전순으로 가장 작은 문자열을 표시합니다. 그리고 한 가지 제약 조건은 각 문자가 고유하다는 것입니다.

따라서 입력이 s ="pqr"과 같으면 출력은 ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

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

  • st_arr :=새 목록
  • 범위 크기가 s - 1에서 0인 i에 대해 1만큼 감소, do
    • 0에서 st_arr - 1의 크기 범위에 있는 j에 대해
      • st_arr 끝에 삽입(s[i] 연결 st_arr[j])
    • st_arr 끝에 s[i] 삽입
  • st_arr 반환

예시

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

def solve(s):
   st_arr = []

   for i in range(len(s)-1,-1,-1):
      for j in range(len(st_arr)):
         st_arr.append(s[i]+st_arr[j])
      st_arr.append(s[i])
   return st_arr

s = "pqr"
print(solve(s))

입력

"pqr"

출력

['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']