중복되기 전에 (긴 줄을 끊지 않고 긴 줄을 분리하는 방법을 묻는 질문이 많습니다.) 제 문제는 약간 다릅니다 : 순서는 중요하지 않고 가능한 한 모든 라인을 사용하기 위해 단어를 맞추십시오.긴 줄을 깨뜨리지 않고 긴 줄 나누기
안녕,
나는 단어의 순서가 지정되지 않은 세트를했습니다 나는 이상 253 개 문자를 사용하지 않고 그들을 결합하고 싶습니다.
def compose(words):
result = " ".join(words)
if len(result) > 253:
pass # this should not happen!
return result
내 문제는 내가 가능한 한 많은 라인을 채우기 위해 시도 할 것입니다. 예 :
words = "a bc def ghil mno pq r st uv"
limit = 5 # max 5 characters
# This is good because it's the shortest possible list,
# but I don't know how could I get it
# Note: order is not important
good = ["a def", "bc pq", "ghil", "mno r", "st uv"]
# This is bad because len(bad) > len(good)
# even if the limit of 5 characters is respected
# This is equivalent to:
# bad = ["a bc", "def", "ghil", "mno", "pq r", "st uv"]
import textwrap
bad = textwrap.wrap(words, limit)
어떻게하면됩니까?
이것은 동적 프로그래밍 문제입니다. 그것을 [동전 교환 문제] (http://www.geeksforgeeks.org/dynamic-programming-set-7-coin-change/)와 같은 방식으로 공격하십시오. –