码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 68. Text Justification

时间:2019-09-22 13:19:37      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:rds   有意思   com   i++   pre   maxwidth   for   idt   tps   

题目

没有意思的字符串模拟题

class Solution {
public:
    vector<string> fullJustify(vector<string>& words, int maxWidth) {
        
        vector<string> latest;
        vector<vector<int>> result;
        vector<int> ans;
        int num=0;
        for(int i=0;i<words.size();i++)
        {
            if(num==0){
                num+=words[i].length();
                
            }
            else
                num+=words[i].length()+1;
            
            if(num==maxWidth)
            {
                ans.push_back(i);
                result.push_back(ans);
                ans.clear();
                num=0;
            }
            else if(num>maxWidth)
            {
                result.push_back(ans);
                ans.clear();
                ans.push_back(i);
                
                num=0;
                num+=words[i].length();
            }
            else
            {
                ans.push_back(i);
            }
        }
        
        if(ans.size()!=0)
        {
            result.push_back(ans);
        }
        
        string str="";
        for(int i=0;i<result.size();i++)
        {
            if(i==result.size()-1)
            {
                str="";
                str+=words[result[i][0]];
                for(int j=1;j<result[i].size();j++)
                {
                    str+=" ";
                    str+=words[result[i][j]];
                }
                int l=str.length();
                for(int k=0;k<maxWidth-l;k++)
                {
                    str+=" ";
                }
                latest.push_back(str);
                break;
            }
            str="";
            int sum=0;
            int len=result[i].size();
            for(int j=0;j<result[i].size();j++)
            {
                sum+=words[result[i][j]].length();
            }
            
            int s = maxWidth-sum;
            
            int av=0;
            int sb=0;
            if(len!=1){
             av = s/(len-1);
             sb = s%(len-1);
            }
            
            str+=words[result[i][0]];

            for(int j=1;j<result[i].size();j++)
            {
                for(int k=0;k<av;k++)
                {
                    str+=" ";
                }
                if(sb>0)
                {
                    str+=" ";
                    sb--;
                }
                str+=words[result[i][j]];
            }
            if(len==1)
            {
                int l=str.length();
                for(int k=0;k<maxWidth-l;k++)
                {
                    str+=" ";
                }
            }
            
            latest.push_back(str);
            
        }
        
        return latest;
        
    }
};

LeetCode 68. Text Justification

标签:rds   有意思   com   i++   pre   maxwidth   for   idt   tps   

原文地址:https://www.cnblogs.com/dacc123/p/11566859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!