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

Python에서 모든 문자가 사전순으로 바로 다음 문자보다 크도록 문자열 찾기

<시간/>

숫자 n이 있다고 가정합니다. 임의의 위치에 있는 문자가 바로 다음 문자보다 사전순으로 커야 하도록 길이가 n+1인 소문자 문자열을 확인해야 합니다.

따라서 입력이 15와 같으면 출력은 ponmlkjihgfedcba가 됩니다.

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

  • temp_str :=빈 문자열
  • 추가:=n 모드 26
  • 추가이면>=1이면
    • 26 -(extra + 1) ~ 25 범위의 i에 대해
      • temp_str :=temp_str + str[i]
    • count :=n / 26(정수 나누기)
    • 범위 1에 있는 i가 + 1을 계산하려면 다음을 수행합니다.
      • 0에서 25 사이의 j에 대해 다음을 수행합니다.
        • temp_str :=temp_str + str[j]
  • temp_str 반환

예시

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

def show_string(n, str):
   temp_str = ""
   extra = n % 26
   if (extra >= 1) :
      for i in range( 26 - (extra + 1), 26):
         temp_str += str[i]
   count = n // 26
   for i in range(1, count + 1) :
      for j in range(26):
         temp_str += str[j]
   return temp_str
n = 15
str = "zyxwvutsrqponmlkjihgfedcba"
print(show_string(n, str))

입력

15

출력

ponmlkjihgfedcba