当前位置: 首页 > news >正文

面试经典题---68.文本左右对齐

68.文本左右对齐

我的解法:

两层while循环嵌套,外层循环用于处理不同行,内层while循环计算出每行应有的单词个数。

  • 使用left和right记录一行中应有的单词下标,即当前行应包含从words[left]到words[right-1]这count个单词;
  • 每行单词之间至少有space/(count-1)个空格,另外每行前space%(count-1)个单词之间应该多一个空格,才能保证空格均匀分配且左侧空格数更多;
  • 这里定义了拼接函数join(),用于将words[left]到words[right-1]这些单词以空格space连接起来,注意其中tmp的初值和赋值方式;
  • 对于最后一行和只包含一个单词的中间行需要特殊处理
class Solution {string join(vector<string>& words, int left, int right, string space){string tmp = words[left];for(int i = left + 1; i <= right; ++i){tmp += space + words[i];}return tmp;}
public:vector<string> fullJustify(vector<string>& words, int maxWidth) {int n = words.size();vector<string> res;int right = 0;while(true){int left = right;int len = 0;while((right < n) && (words[right].size() + len + right - left <= maxWidth)){len += words[right++].size();}if(right == n){string t = join(words, left, n - 1, " ");res.push_back(t + string(maxWidth - t.size(), ' '));break;}int count = right - left;int space = maxWidth - len;if(count == 1){res.push_back(words[left] + string(space,' '));continue;}int avg_space = space / (count - 1);int extra = space % (count - 1);string t1 = join(words, left, left + extra, string(avg_space + 1, ' '));string t2 = join(words,left + extra + 1,right - 1, string(avg_space, ' '));res.push_back(t1 + string(avg_space,' ') + t2);}return res;}
};

http://www.lryc.cn/news/279099.html

相关文章:

  • 完整的模型验证套路
  • 内 存 取 证
  • 【PHP】价格区间字段验证,如4万-5万
  • 安徽省暨合肥市“希望工程·梦想计划”小盖茨机器人捐赠启动仪式举行
  • Kafka消息存储
  • 【Vue3+Ts项目】硅谷甄选 — 用户管理+角色管理+菜单管理+首页
  • node连接Mysql失败
  • 运用AI搭建中间服务层(四)
  • [C#]winform部署yolov5-onnx模型
  • 基于SpringBoot的洗衣店管理系统
  • AMEYA360:广和通RedCap模组FG131FG132系列
  • RGB,RGB-D,单目,双目,sterro相机,实例相机介绍
  • 【linux】history命令显示时间的例子
  • Nginx负载均衡以及常用的7层协议和4层协议的介绍
  • 【机器学习300问】4、机器学习到底在学习什么?
  • 设计一个简易版的数据库路由
  • 接口自动化测试面试题
  • Tampermonkey油猴插件-各大网盘批量分享,解放双手-上
  • 【DB2】installSAM执行后会重启这件事
  • RTSP网络视频协议
  • Python 网络数据采集(四):Selenium 自动化
  • 实现秒杀功能设计
  • 每天刷两道题——第十四天
  • 快速掌握Postman实现接口测试
  • jmeter--3.使用提取器进行接口关联
  • 移动通信系统关键技术多址接入MIMO学习(8)
  • WorkPlus AI助理为企业提供智能客服的机器人解决方案
  • python类装饰器编写单体类
  • Java并发Condition 详解
  • 如何使用CentOS系统中的Apache服务器提供静态HTTP服务