185. go字符串拼接(力扣 68. 文本左右对齐)
时间:2021-09-10
本文章向大家介绍185. go字符串拼接(力扣 68. 文本左右对齐),主要包括185. go字符串拼接(力扣 68. 文本左右对齐)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package main
import (
"strings"
)
func blank(n int) string {
return strings.Repeat(" ", n)
}
// 关于官网这种代码结构是在很让人失望, 所有处理都在同一个函数中很不好
func fullJustify(words []string, maxWidth int) (ans []string) {
right, n := 0, len(words)
for {
left := right // 记录一行的其实索引
sumLen := 0
// 循环判断当前right可以到哪里
for right < n && sumLen+len(words[right])+right-left <= maxWidth {
sumLen += len(words[right])
right++
}
// 如果是最后一行的话需要特殊处理
if right == n {
s := strings.Join(words[left:], " ")
ans = append(ans, s+blank(maxWidth-len(s)))
return
}
// 单词数量和空格数量
numWords := right - left
numSpace := maxWidth - sumLen
// 当前行只有一个单词与
if numWords == 1 {
ans = append(ans, words[left]+blank(numSpace))
continue
}
// 当前行单词>1
avgSpace := numSpace / (numWords - 1)
extraSpace := numSpace % (numWords - 1)
s1 := strings.Join(words[left:left+extraSpace+1], blank(avgSpace+1))
s2 := strings.Join(words[left+extraSpace+1:right], blank(avgSpace))
ans = append(ans, s1+blank(avgSpace+1)+s2)
}
}
原文地址:https://www.cnblogs.com/liuzhanghao/p/15250489.html
- js获取url参数的方法
- JavaScript操作符(关系操作符、相等操作符和条件操作符)
- javascript运动功能-分享到
- SQL Server 2008 geometry 数据类型
- JavaScript基本类型与引用类型
- JavaScript函数
- JavaScript操作符(一元操作符、位操作符)
- JavaScript变量和数据类型
- SpringMvc学习-增删改查
- JavaScript操作符(布尔操作符、乘性操作符和加性操作符)
- JavaScript语句-流程控制语句
- SpringMvc学习-环境搭建
- 浅谈JavaScript的面向对象程序设计(一)
- 浅谈JavaScript的面向对象程序设计(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法