leetCode68. 文本左右对齐
基本思路:
leetCode68. 文本左右对齐

代码
class Solution {
public:vector<string> fullJustify(vector<string>& words, int maxWidth) {vector<string> res;for(int i = 0; i < words.size(); i++){ // 枚举有多少个单词int j = i + 1; // j表示各单词的下标int len = words[i].size(); // 该单词的长度// 看当前行可以放多少个单词// 当前单词长度 + 1个空格 + 下一个单词的长度 <= maxwidth,表示改行还可以继续放while(j < words.size() && len + 1 + words[j].size() <= maxWidth){len += 1 + words[j++].size();}string line = "";if(j == words.size() || j == i + 1){// 当j是在最后的位置,或者当前行只有一个单词,进行左对齐line += words[i];for(int k = i + 1; k < j; k++){line += ' ' + words[k];}while(line.size() < maxWidth) line += ' ';}else{ // 进行的是左右对齐int cnt = j - i - 1; //空隙的数量 = 单词的数量(j - i)- 1int r = maxWidth - len + cnt; // 总共的空格数量line += words[i];int k = 0;// 表示从第一个空隙开始计算while(k < r % cnt) { // 除不尽,r%cnt !=0,则前r%cnt个间隙r/cnt+1个空格,最后一个间隙r/cnt个空格line += string(r / cnt + 1, ' ') + words[i + k + 1];k++;}while(k < cnt) {// 这里加while是因为如果能整除,r%cnt=0,则全部为r/cnt个空格,对于每个cnt间隙内line += string(r / cnt, ' ') + words[i + k + 1];k++;}}res.push_back(line);i = j - 1;}return res;}
};
相关文章:
leetCode68. 文本左右对齐
基本思路: leetCode68. 文本左右对齐 代码 class Solution { public:vector<string> fullJustify(vector<string>& words, int maxWidth) {vector<string> res;for(int i 0; i < words.size(); i){ // 枚举有多少个单词int j i 1; //…...
搜狗输入法 PC端 v14.4.0.9307 去广告绿化版.
软件介绍 搜狗拼音输入法作为众多用户计算机配置的必备工具,其功能的全面性已为众所周知,并且以其高效便捷的输入体验受到广大使用者的青睐。然而,该软件在提供便利的同时,其内置的广告元素常常为用户带来一定的干扰。为此&#…...
【汇总】虚拟机网络不通(Xshell无法连接虚拟机)排查方法
搜索关键字关键字关键字:虚拟机虚拟机虚拟机连接失败、虚拟机无法连接、Xshell连接失败、ping baidu.com失败、静态IP设置 Kali、CentOS、远程连接 描述:物理机无法连接虚拟机;虚拟机无法访问百度,虚拟机无法访问baidu.com 虚拟机…...
C++开发基础之函数参数传递的几种类型
一、前言 在C中,接口指针或类对象的函数参数传递是一个常见的做法,特别是在需要支持多态或动态绑定时。这里将介绍如何传递接口指针或类对象作为函数参数。 二、函数参数传递的几种类型 抽象类(接口)的实例只能通过指针或引用传…...
使用memcache 和 redis 、 实现session 会话复制和保持
一、NoSQL介绍 NoSQL是对Not Only SQL、非传统关系型数据库的统称 NoSQL一词诞生于1998年,2009年这个词汇再次提出指非关系型、分布式、不提供ACID的数据库设计模式 随着互联网时代的数据爆发时增长、数据库技术发展的日新月异,要适应新的业务需求&am…...
Tomcat 优化
在目前流行的互联网架构中,Tomcat在目前的网络编程中是举足轻重的,由于Tomcat的运行依赖于JVM,从虚拟机的角度把Tomcat的调整分为外部环境调优 JVM 和 Tomcat 自身调优两部分。 一、JVM组成 1. JVM 组成 JVM组成部分 类加载子系统: 使用Ja…...
如何将pdf文件换成3d模型?---模大狮模型网
PDF文件是一种广泛用于文档传输和共享的格式,但在某些情况下,我们可能希望将其中的内容转换为更具交互性和视觉效果的3D模型。本文将介绍如何将PDF文件转换为3D模型,为您展示实现这一想象的步骤。 选择合适的PDF文件: 首先&#…...
Docker 中快速构建 Redis Cluster 集群
Docker 中快速构建 Redis Cluster 集群 目录 前言环境准备 所需软件配置网络 构建 Redis Cluster 镜像 创建自定义 Dockerfile构建镜像 启动 Redis 节点容器 启动命令 配置 Redis Cluster 集群 创建 Redis 集群验证集群状态 总结 前言 Redis 是一个高性能的键值对数据库&am…...
C语言----杨辉三角
各位看官们好。学习到这里想必大家应该对C语言的了解也是很深刻的了吧。但是我们也不能忘记我们一起学习的知识啊。在我们以前学习C语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。 首先我们先…...
FlaUI
FlaUI是一个基于微软UIAutomation技术(简称UIA)的.NET库,它主要用于对Windows应用程序(如Win32、WinForms、WPF、Store Apps等)进行自动化UI测试。FlaUI的前身是TestStack.White,由Roemer开发,旨…...
MySQL调优-01反范式化表设计
MySQL调优-01反范式化表设计 数据库设计三范式 第一范式(1NF)。确保数据库表的每一列都是不可分割的原子数据项,即列中不可包含数组、记录等非原子数据项;确保表中没有重复的属性或列,每个属性只出现一次,…...
74从零开始学Java之排序算法中的冒泡和选择排序
作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们要想成为一个优秀的程序员,其实非常关键的一点就是要锻炼培养自己的编程思维,就好比一个狙击手,要通过大量的射击训练要用大量的子弹喂出来。同样的…...
【Qt问题】VS2019 Qt win32项目如何添加x64编译方式
往期回顾: 【Qt问题】Qt常用快捷键汇总-CSDN博客 【Qt问题】Qt Creator 如何链接第三方库-CSDN博客 【Qt问题】Qt 如何带参数启动外部进程-CSDN博客 【Qt问题】VS2019 Qt win32项目如何添加x64编译方式 我们都知道vs2019在编译项目的时候是需要选择编译环境的&…...
LabVIEW换智能仿真三相电能表研制
LabVIEW换智能仿真三相电能表研制 在当前电力工业飞速发展的背景下,确保电能计量的准确性与公正性变得尤为重要。本文提出了一种基于LabVIEW和单片机技术,具有灵活状态切换功能的智能仿真三相电能表,旨在通过技术创新提高电能计量人员的培训…...
Python | Leetcode Python题解之第69题x的平方根
题目: 题解: class Solution:def mySqrt(self, x: int) -> int:if x 0:return 0C, x0 float(x), float(x)while True:xi 0.5 * (x0 C / x0)if abs(x0 - xi) < 1e-7:breakx0 xireturn int(x0)...
libhv http client vs cpr
libhv http client 和 cpr 的性能对比 libhv test code static void test_http_async(HttpClient* cli, int seq, int* resp_cnt) {auto req std::make_shared<HttpRequest>();req->method HTTP_GET;req->url "www.baidu.com";req->timeout 1…...
CTFHub-Web-文件上传
CTFHub-Web-文件上传-WP 一、无验证 1.编写一段PHP木马脚本 2.将编写好的木马进行上传 3.显示上传成功了 4.使用文件上传工具进行尝试 5.连接成功进入文件管理 6.上翻目录找到flag文件 7.打开文件查看flag 二、前端验证 1.制作payload进行上传发现不允许这种类型的文件上传 …...
笔记2:cifar10数据集获取及pytorch批量处理
(1)cifar10数据集预处理 CIFAR-10是一个广泛使用的图像数据集,它由10个类别的共60000张32x32彩色图像组成,每个类别有6000张图像。 CIFAR-10官网 以下为CIFAR-10数据集data_batch_*表示训练集数据,test_batch表示测试…...
FSD自动驾驶泛谈
特斯拉的FSD(Full-Self Driving,全自动驾驶)系统是特斯拉公司研发的一套完全自动驾驶系统。旨在最终实现车辆在多种驾驶环境下无需人类干预的自动驾驶能力。以下是对FSD系统的详细探讨: 系统概述 FSD是特斯拉的自动驾驶技术&…...
golang获取变量动态类型
类型断言:data.(Type) 类型断言是最常用的获取变量动态类型的方法之一。允许在运行时将接口值转换为其具体类型。 data 是一个接口类型的变量。 Type 是一个具体的类型。 这个表达式的含义是,如果 data 的底层值是 Type 类型,那么 value 将接…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
