class Solution(object):
def fullJustify(self, words, maxWidth):
"""
:type words: List[str]
:type maxWidth: int
:rtype: List[str]
"""
res=[]
nextind=0
while nextind<len(words):
linecnt=len(words[nextind])
lastind=nextind
nextind+=1
while nextind<=len(words)-1 and len(words[nextind])+linecnt<maxWidth:
linecnt+=len(words[nextind])+1
nextind+=1
#print nextind
#print len(words[nextind])+linecnt, words[nextind]
if nextind-lastind-1>0:
spacew=(maxWidth-linecnt)/(nextind-lastind-1)
else:
spacew=0
#print maxWidth, linecnt, nextind, lastind, spacew
oneline=words[lastind]
if nextind>len(words)-1:
for i in xrange(1,nextind-lastind):
oneline+=' '
oneline+=words[lastind+i]
else:
for i in xrange(1,nextind-lastind):
if spacew*(nextind-lastind-1)+i<=maxWidth-linecnt:
oneline+=' '*(spacew+2)
else:
oneline+=' '*(spacew+1)
oneline+=words[lastind+i]
oneline+=' '*(maxWidth-len(oneline))
res.append(oneline)
return res