题目大意:给定一个数组容器,里面存有很多string; 一个int maxWith。让你均匀安排每一行的字符串,能够尽可能的均匀。

解题思路:字符串+贪心。一开始想复杂了,总觉的题意描述的不是很清楚,其实放到实际的场景中去,无非就是想让前端字符串布局变得更加美观,而设计的字符串对其方式(分散对齐)(如果每一行只有一个字符串的话,那么左对齐)。

附上代码:

   vector<string> fullJustify(vector<string>& words, int maxWidth)
{
vector<string> ans;
string rec = "";
int lenLine = words[].length();
vector<int>wordId;
wordId.push_back();
for(int i = ; i < words.size(); i ++){
if(lenLine + words[i].length() + <= maxWidth){
lenLine += words[i].length() + ;
wordId.push_back(i);
}else{
rec = "";
rec += words[wordId[]];
if(wordId.size() == ){
string spaces(maxWidth - rec.length(), ' ');
rec += spaces;
}else{
int totalLenOfWords = ;
for(int j = ; j < wordId.size(); j ++){
totalLenOfWords += words[wordId[j]].length();
}
int averageLenOfSpace = , leftLenOfSpace = ;
averageLenOfSpace = (maxWidth - totalLenOfWords) / (wordId.size() - );
leftLenOfSpace = maxWidth - totalLenOfWords - averageLenOfSpace * (wordId.size() - );
for(int j = ; j < wordId.size(); j ++){
string space(averageLenOfSpace, ' ');
rec += space;
if(leftLenOfSpace > ){
rec += " ";
leftLenOfSpace --;
}
rec += words[wordId[j]];
}
}
ans.push_back(rec);
lenLine = words[i].length();
wordId.clear();
wordId.push_back(i);
}
}
if(wordId.size()){
rec = "";
rec += words[wordId[]];
for(int j = ; j < wordId.size(); j ++){
rec += " ";
rec += words[wordId[j]];
}
string spaces(maxWidth - rec.length(), ' ');
rec += spaces;
ans.push_back(rec);
}
return ans;
}

反思: 这道题的难点在于,要记得区分一种特殊状况:当该行只有一个word的时候。代码实现的速度还是比较慢,以后要速度解决这种没啥思维量的手速题。网易笔试告诉我:手速真的很重要。不要被外界因素干扰,心无旁骛的codeing。

最后:今天又看到了一个靠刷题算法逆袭成功的小硕,repeat my words: fuck all the leetcode problems and be a offer Harvester.

【LeetCode】 -- 68.Text Justification的更多相关文章

  1. 【LeetCode】68. Text Justification

    Text Justification Given an array of words and a length L, format the text such that each line has e ...

  2. 【一天一道LeetCode】#68. Text Justification

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  3. 【LEETCODE】68、动态规划,medium级别,题目:95、120、91

    package y2019.Algorithm.dynamicprogramming.medium; /** * @ProjectName: cutter-point * @Package: y201 ...

  4. leetcode@ [68] Text Justification (String Manipulation)

    https://leetcode.com/problems/text-justification/ Given an array of words and a length L, format the ...

  5. 【LeetCode】Permutations 解题报告

    全排列问题.经常使用的排列生成算法有序数法.字典序法.换位法(Johnson(Johnson-Trotter).轮转法以及Shift cursor cursor* (Gao & Wang)法. ...

  6. 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)

    Xiang Bai--[arXiv2016]Scene Text Detection via Holistic, Multi-Channel Prediction 目录 作者和相关链接 方法概括 创新 ...

  7. 论文阅读(Xiang Bai——【CVPR2015】Symmetry-Based Text Line Detection in Natural Scenes)

    Xiang Bai--[CVPR2015]Symmetry-Based Text Line Detection in Natural Scenes 目录 作者和相关链接 方法概括 创新点和贡献 方法细 ...

  8. 论文阅读(Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)

    Xiang Bai--[CVPR2016]Multi-Oriented Text Detection with Fully Convolutional Networks 目录 作者和相关链接 方法概括 ...

  9. 【LeetCode】Minimum Depth of Binary Tree 二叉树的最小深度 java

    [LeetCode]Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum dept ...

随机推荐

  1. springcloud(八):熔断器Hystrix

    熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者”的不可用导致“服务 ...

  2. 如何创建新用户和授予MySQL中的权限

    原创官网http://www.howtoing.com/how-to-create-a-new-user-and-grant-permissions-in-mysql/ 关于MySQL MySQL是一 ...

  3. 模拟select控件功能

    直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  4. Linux下汇编语言学习笔记75 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  5. DJANGO中正规的建立与USER外键的方式

    以前都是直接与user 最近看书,上说settings.AUTH_USER_MODEL,这样好些...是为记. from django.db import models from django.con ...

  6. Open Flash Chart2 常用的参数

    http://fyzeng.diandian.com/post/2011-07-29/3339982 {   /* 图表标题 */   "title" : {     " ...

  7. 1. FrogRiverOne 一苇渡江 Find the earliest time when a frog can jump to the other side of a river.

    package com.code; public class Test04_3 { public static int solution(int X, int[] A) { int size = A. ...

  8. QT如何修改字符编码格式

    编辑-Select Encoding,然后在弹出窗口中修改字符编码.                      

  9. Android学习之利用BitmapFactory工厂压缩图片

    BufferedInputStream in = new BufferedInputStream( new FileInputStream(new File(path))); BitmapFactor ...

  10. UVa 11475 - Extend to Palindrome

    題目:給你一個字符串,在後面拼接一部分使得它變成回文串,使得串最短.輸出這個回文串. 分析:KMP,dp.這裡利用KMP算法將串和它的轉置匹配,看結束時匹配的長度就可以. 因為串比较長.使用KMP比较 ...