首页 > 其他 > 详细

LeetCode "Text Justification"

时间:2014-08-13 10:17:25      阅读:285      评论:0      收藏:0      [点我收藏+]

Just take care of corner cases!

class Solution {
public:
    vector<string> fullJustify(vector<string> &words, int L) {
        vector<string> ret;

        int startInx = 0;
        while (startInx < words.size())
        {
            //    Get word count a line
            int wcnt = 0, spcnt = 0;
            int i = 0;
            bool lastRm = false;
            for (i = startInx; i < words.size(); i++)
            {
                wcnt += words[i].length();
                spcnt = i - startInx + wcnt;
                if (spcnt >= L)
                {
                    lastRm = spcnt > L;
                    break;
                }
            }

            if (!lastRm) // good luck
            {
                string line;
                for (int j = startInx; j <= i && j < words.size(); j++)
                {
                    line += words[j];
                    if (j < i) line +=  ;
                }
                if (line.length() < L)    // should only happen to last word
                {
                    line.append(L - line.length(),  );
                }
                ret.push_back(line);
            }
            else    // needs to chop last one
            {
                //    Handle spaces
                spcnt -= words[i].length() + 1;
                int slotCnt = i - startInx - 1;
                int sp2fill = L - spcnt + slotCnt;
                vector<string> sp; 
                if (slotCnt == 0) slotCnt = 1;
                sp.resize(slotCnt);
                for (int k = 0; k < sp2fill; k++)
                {
                    sp[k % slotCnt] +=  ;
                }
                //    Compose
                string line;
                for (int j = startInx; j < i; j++)
                {
                    line += words[j];
                    if (j < i - 1 || (i - startInx) == 1)
                    {
                        line += sp[j - startInx];
                    }
                }
                ret.push_back(line);
            }

            startInx = lastRm ? i : i + 1;
        }

        return ret;
    }
};

LeetCode "Text Justification",布布扣,bubuko.com

LeetCode "Text Justification"

原文:http://www.cnblogs.com/tonix/p/3909243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!