题目来源:

  https://leetcode.com/problems/text-justification/


题意分析:

  输入一个字符串数组和一个规定长度L。将这个字符串数组的元素尽可能放到长度的L的字符串中,数组中的字符串不能拆开,一个长度L的字符串包括的若干个字符串之间用相等的空格间隔开。比如:

words: ["This", "is", "an", "example", "of", "text", "justification."],L: 16.

将返回

["This    is    an","example  of text","justification.  "
]

题目思路:

  这道题目直接模拟解就可以了,要注意的是有很多细节要处理。从开始加入元素,长度增加,然后空格+1后继续加入新元素,直到长度大于L。然后判断空格的个数就可以了。


代码(Python):

  

class Solution(object):def fullJustify(self, words, maxWidth):""":type words: List[str]:type maxWidth: int:rtype: List[str]"""ans = []i = 0while i < len(words):size,begin = 0,iwhile i < len(words):if size == 0:newsize = len(words[i])else:newsize = size + len(words[i]) + 1if newsize <= maxWidth:size = newsizeelse:breaki += 1s = maxWidth - sizeif i - begin - 1 > 0 and i < len(words):ns = s / (i - begin - 1)s %= i - begin - 1else:ns = 0j = beginwhile j < i:if j == begin: tmp = words[j]else:tmp += ' '*(ns + 1)if s > 0 and i < len(words):tmp += ' 's -= 1tmp += words[j]j += 1tmp += ' '*sans.append(tmp)return ans

View Code


转载请注明出处:http://www.cnblogs.com/chruny/p/5045245.html

转载于:https://www.cnblogs.com/chruny/p/5045245.html

[LeetCode]题解(python):068-Text Justification相关推荐

  1. [Leetcode]@python 68. Text Justification

    题目链接 https://leetcode.com/problems/text-justification/ 题目原文 Given an array of words and a length L, ...

  2. 哈希表(散列表)基础概念与经典题目(Leetcode题解-Python语言)之中——实际应用

    上一节介绍了哈希表的原理与设计方法,这一节则直接python中现有的哈希表类型:哈希集合 set(集合)和哈希映射 dict(字典)来解决实际应用(刷题). 零.概念 在介绍实际应用之前,有一个概念我 ...

  3. 二叉树层序遍历(广度优先搜索)基础概念与经典题目(Leetcode题解-Python语言)

    二叉树的广度优先搜索即从上到下.从左到右地进行搜索,对于层序遍历(Level Order)问题,即依次遍历第一层节点.第二层节点-等,基本可以秒杀. 广度优先搜索是通过队列来实现的,python中优先 ...

  4. 两数、三数、四数之和相关题目(Leetcode题解-Python语言)

    作为 Leetcode 的第一题,两数之和自然是知名度最高的,从两数之和出发也有不少的衍生题目,下面就让我们好好地解决它们. 1. 两数之和 class Solution:def twoSum(sel ...

  5. 字符串匹配经典题目——KMP算法(Leetcode题解-Python语言)

    28. 实现 strStr() strStr(haystack: str, needle: str) 的作用就是在 haystack 字符串(长度为 n)中找出 needle 字符串(长度为 m)出现 ...

  6. 队列的基础概念与经典题目(Leetcode题解-Python语言)

    队列是先入先出(后入后出)的数据结构,常用操作就 push 和 popleft,Python中用列表中的 pop(0) 或者 collection.deque的 popleft() 都可以. 普通队列 ...

  7. 在数组中找重复数、只出现一次的数或丢失数的题目(Leetcode题解-Python语言)

    在一维数组中的考察中,最常见的就是找出数组中的重复数.只出现一次的数或者丢失(消失)数等等. 一般来说,首先想到的就是用哈希表(集合)来记录出现过的数,基本所有的题都可以用集合来做,而技巧性在于有时可 ...

  8. 栈的基础概念与经典题目(Leetcode题解-Python语言)

    栈是先入后出(后入先出)的数据结构,常用操作就 push 和 pop,Python中用列表实现即可,基本概念可以看Leetbook相关章节. 普通栈 232. 用栈实现队列 class MyQueue ...

  9. 一般动态规划问题合集(Leetcode题解-Python语言)

    118. 杨辉三角 class Solution:def generate(self, numRows: int) -> List[List[int]]:dp = [[0] * i for i ...

  10. 买卖股票类问题动态规划解法(Leetcode题解-Python语言)

    在 Leetcode 中,关于买卖股票的问题共有6道,而这些题目是可以用相同的思维进行求解的,强烈推荐这篇总结,写得非常到位. 股票类问题的动态规划分三步走,1.首先明确方程的含义, T[i][k][ ...

最新文章

  1. 热点快评:德国强化AI战略,系统、技术等“多轮并行”
  2. 树莓派保卫战--防止SSH暴力破解
  3. MyBatis自定义类型处理器 TypeHandler
  4. python po设计模式_(Python)PO设计模式
  5. ibatis学习笔记
  6. 【倍增】【线段树】雨林跳跃(luogu 7599[APIO 2021 T2])
  7. 好的软件人员必看的书
  8. 动态规划( python)
  9. 朝花夕拾-4-shell
  10. python学习总结----内置函数及数据持久化
  11. C++《STL和泛型编程》算法accumulate、for_each、sort简单使用例子
  12. 高并发架构系列:如何解决Redis雪崩、穿透、并发等5大难题
  13. GIF图形文件格式文档
  14. 【http协议2】 深入理解HTTP协议
  15. 物理课上该怎样使用计算机,物理课堂教学中怎样使用演示课件.doc
  16. c语言printf输出格式
  17. 简单工厂模式、工厂模式、抽象工厂模式
  18. 用C语言实现小写金额转大写
  19. HelloWorld Detail Earth 3D Engine(二)城市渲染
  20. AE影视后期特效制作深入剖析AE表达…

热门文章

  1. dueros基于什么开发的_干货丨超详细!DuerOS开发套件申请攻略!
  2. java题1_java面试题1
  3. 手把手教你启动若依单体项目
  4. 论破坏计算机信息系统罪,论破坏计算机信息系统罪
  5. html ul高度自适应,如何让div中的ul元素自适应
  6. cf1月超级翻盘_CF1月超级翻牌活动地址 2020年CF超级翻盘活动全攻略
  7. I2C通信读写数据过程
  8. cmd对应linux sleep命令,linux的sleep命令
  9. MySQL数据库建表时对于某个字段设置了默认值,但是使用Spring Data Jpa的save后默认值没有生效
  10. jar命令更新jar中的class文件