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

Python - 문자 반복 문자열 조합

<시간/>

주어진 문자의 문자반복을 얻어야 할 때 인덱스 값을 사용하여 반복을 출력하는 메소드를 정의한다.

예시

아래는 동일한 데모입니다.

def to_string(my_list):
   return ''.join(my_list)

def lex_recurrence(my_string, my_data, last_val, index_val):
   length = len(my_string)

   for i in range(length):

      my_data[index_val] = my_string[i]

      if index_val==last_val:
         print(to_string(my_data))
      else:
         lex_recurrence(my_string, my_data, last_val, index_val+1)

def all_lex(my_string):
   length = len(my_string)

   my_data = [""] * (length+1)
   my_string = sorted(my_string)
   lex_recurrence(my_string, my_data, length-1, 0)

my_string = "MQ"
print("The string is :")
print(my_string)
print("All permutations with repetition of " + my_string + " are...")
all_lex(my_string)

출력

The string is :
MQ
All permutations with repetition of MQ are...
MM
MQ
QM
QQ

설명

  • 목록을 매개변수로 받아 모든 값을 결합하여 반환하는 'to_string'이라는 메서드가 정의되어 있습니다.

  • 문자열, 인덱스 값을 매개변수로 사용하는 'lex_recurrence'라는 또 다른 메서드가 정의되어 있습니다.

  • 문자열의 길이에 대해 반복하고 마지막 값과 인덱스 값이 동일한지 확인합니다.

  • 맞으면 조합 중 하나로 출력됩니다.

  • 그렇지 않으면 인덱스 값을 증가시켜 메소드를 다시 호출합니다.

  • 'sorted' 메서드를 사용하여 문자열을 정렬하고 이전 메서드를 다시 호출하는 'all_lex'라는 또 다른 메서드가 정의되어 있습니다.

  • 메서드 외부에서 문자열이 정의되고 콘솔에 표시됩니다.

  • 출력은 콘솔에 표시됩니다.