zoukankan      html  css  js  c++  java
  • 68. Text Justification

    class Solution {
        public List<String> fullJustify(String[] words, int maxWidth) {
            List<String> res=new ArrayList<String>();
            int idx=0;
            while(idx<words.length)
            {
                int curlen=0;
                int i=idx;
                while(i<words.length&&curlen+words[i].length()<=maxWidth)
                {
                    curlen+=words[i].length()+1;
                    i++;
                }
                curlen--;
                
                StringBuilder sb=new StringBuilder();
                if(i==words.length||i==idx+1)
                {
                    for(int k=idx;k<i-1;k++)
                        sb.append(words[k]+" ");
                    sb.append(words[i-1]);
                    for(int k=sb.length();k<maxWidth;k++)
                        sb.append(" ");
                    res.add(sb.toString());
                }
                else
                {
                    int space=(maxWidth-curlen)/(i-idx-1);
                    int extra=(maxWidth-curlen)%(i-idx-1);
                    String sp="";
                    for(int k=0;k<space;k++)
                        sp+=" ";
                    for(int k=idx;k<i-1;k++)
                    {
                        sb.append(words[k]+" "+sp);
                        if(extra>0)
                        {
                            sb.append(" ");
                            extra--;
                        }
                    }
                    sb.append(words[i-1]);
                    res.add(sb.toString());
                }
                idx=i;
            }
            return res;
        }
    }
  • 相关阅读:
    CF1580B Mathematics Curriculum
    [机房测试]变异大老鼠
    http_缓存
    UDP_概述
    记录: webAssembly 延申
    Event
    NetWork_timeLine
    基于Typora的Latex代码书写并移植到word中
    ZooKeeper学习总结
    HBase学习总结
  • 原文地址:https://www.cnblogs.com/asuran/p/7594772.html
Copyright © 2011-2022 走看看