Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 단어 목록을 사각형 프레임에 정렬하는 방법

여러 개의 단어로 이루어진 목록이 있을 때, 각 단어를 한 줄씩 사각형 프레임 안에 정렬해야 하는 문제가 있다고 가정해 봅시다. 아래 예시를 보면 더 쉽게 이해할 수 있습니다.

예를 들어, 입력이 ['hello', 'world', 'python', 'programming', 'nice']라면 출력 결과는 다음과 같습니다.

***************
* hello       *
* world       *
* python      *
* programming *
* nice        *
***************

해결 접근 방식

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  • 목록에서 가장 긴 단어의 길이를 l로 구합니다.
  • 변수 st에 별표(*)를 l+4번 반복한 문자열을 첫 줄로 저장합니다.
  • words의 각 단어 i에 대해 다음과 같은 문자열을 만들어 st에 연결합니다.
    • '*' + 단어 + (l - 단어 길이 + 1)만큼의 공백 + '*'
  • 마지막 줄로 별표(*)를 l+4번 반복한 문자열을 st 뒤에 추가합니다.
  • 완성된 문자열 st를 반환합니다.

아래 구현 예시를 통해 더 자세히 살펴보겠습니다.

구현 예시

class Solution:
    def solve(self, words):
        l=max(len(x) for x in words)
        st='*'*(l+4)+'\n'
        for i in words:
            st+='* '+i+' '*(l-len(i)+1)+'*'+'\n'
        return st+'*'*(l+4)
ob = Solution()
words = ['hello','world', 'python', 'programming','nice']
print(ob.solve(words))

입력

['hello','world', 'python', 'programming','nice']

출력

***************
* hello       *
* world       *
* python      *
* programming *
* nice        *
***************