LeetCode-1324. Print Words Vertically

2023-11-04

Given a string s. Return all the words vertically in the same order in which they appear in s.
Words are returned as a list of strings, complete with spaces when is necessary. (Trailing spaces are not allowed).
Each word would be put on only one column and that in one column there will be only one word.

 

Example 1:

Input: s = "HOW ARE YOU"
Output: ["HAY","ORO","WEU"]
Explanation: Each word is printed vertically. 
 "HAY"
 "ORO"
 "WEU"

Example 2:

Input: s = "TO BE OR NOT TO BE"
Output: ["TBONTB","OEROOE","   T"]
Explanation: Trailing spaces is not allowed. 
"TBONTB"
"OEROOE"
"   T"

Example 3:

Input: s = "CONTEST IS COMING"
Output: ["CIC","OSO","N M","T I","E N","S G","T"]

 

Constraints:

  • 1 <= s.length <= 200
  • s contains only upper case English letters.
  • It's guaranteed that there is only one space between 2 words.

题解:

class Solution {
public:
    vector<string> printVertically(string s) {
        vector<string> word;
        string tmp = "";
        int len = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s[i] != ' ') {
                tmp += s[i];
            }
            else {
                word.push_back(tmp);
                int tmplen = tmp.length();
                len = max(len, tmplen);
                tmp.clear();
            }
        }
        word.push_back(tmp);
        int tmplen = tmp.length();
        len = max(len, tmplen);
        vector<string> res;
        for (int k = 0; k < len; k++) {
            string cur = "";
            for (int i = 0; i < word.size(); i++) {
                if (word[i].length() > k) {
                    cur += word[i][k];
                }
                else {
                    cur += ' ';
                }
            }
            while (cur.back() == ' ') {
                cur.pop_back();
            }
            res.push_back(cur);
        }
        return res;
    }
};

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode-1324. Print Words Vertically 的相关文章

随机推荐

  • C语言函数大全-- s 开头的函数(3)

    s 开头的函数 3 1 sleep 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 sopen 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 sound 3 1 函数说明 3 2 演示示例 4 spawnl 4 1 函
  • leetcode20. 有效的括号 [简单题]

    题目 给定一个只包括 的字符串 s 判断字符串是否有效 有效字符串需满足 左括号必须用相同类型的右括号闭合 左括号必须以正确的顺序闭合 每个右括号都有一个对应的相同类型的左括号 示例 1 输入 s 输出 true 示例 2 输入 s 输出
  • Windows server远程桌面端口修改

    服务器的远程桌面端口号默认都是3389 修改端口方法如下 1 进入控制面板 防火墙 高级设置 入站规则 可以看到远程桌面TCP In的端口号默认是3389 2 进入注册表 运行 regedit 在注册表中 依次展开目录 HKEY LOCAL
  • ESP32-CAM使用过程的问题

    Esp32 cam算比较便宜实惠的摄像头模块 但是esp32在国内很冷门 可以查看的资料很少 使用过程走了很多弯路 一直跟厂家的技术支持沟通 终于可以显示画面了 以下是本人使用过程中遇到的一些问题 希望对大家有点帮助 有些问题有点蠢 1 a
  • 【文生图系列】如何在Stable Diffusion Webui中使用ControlNet

    文章目录 ControlNet Stable Diffusion ControlNet 安装ControlNet插件 bug 例子展示 参考 ControlNet ControlNet是一个神经网络结构 通过添加额外的条件控制扩散模型 给定
  • 成功解析TT100K

    import os import json from random import random import cv2 import shutil import json import xml dom minidom from tqdm im
  • 华为OD机试真题-施肥问题【2023Q1】

    题目内容 解题思路 首先需要计算每个果园的施肥时间 即果园面积除以施肥机能效 然后找到最小的施肥机能效 保证施肥任务能在规定时间内完成 如果施肥天数小于果园数量 则无法完成施肥任务 返回 1 如果施肥天数等于果园数量 则直接返回最大果园面积
  • 无法用opencv 设置usb camera的解决办法

    apt get install v4l utils v4l2 ctl set fmt video width 1920 height 1080 pixelformat YUYV 转载于 https www cnblogs com gabri
  • 二叉树面试题以及线索化二叉树

    二叉树面试题 完整代码 include
  • echarts之formatter两种使用形式及蝴蝶图的绘制

    1 formatter两种使用形式 可以通过函数和字符串模板来自定义formatter 通过函数动态创建节点 通过循环param的长度 不写死节点 这样有一个好处就是当点击了某一个legend取消了数据的展示的时候 tooltip提示框不至
  • Java8-17 --- idea2022

    目录 一 idea官网 二 使用idea编写hello world 三 查看工程中的JDK配置信息 四 详细设置 4 1 显示工具栏 4 2 默认启动项目配置 4 3 取消自动更新 4 4 选择整体主体与背景图 4 5 设置编辑器主题样式
  • React 使用技巧:useReducer、immer库和 Formik工具库

    1 使用 useReducer hook useReducer 是 useState 的替代品 它可以更好的管理组件的状态 useReudcer 的格式 import useReducer from react let state disp
  • 纯CSS绘制形状(三角形、菱形、球体,长方体等等

    在前段时间看到有的面试题说让说一下梯形 当时自己懵了 所以把各种各样的常见的形状的CSS实现总结一下 基本形状实现之后就可以利用这些基本形状进行组合 就可以实现复杂的形状 1 三角形 triangle width 0 height 0 bo
  • Windows 10创建文件夹目录链接

    问题引出 我们安装软件的时候会发现有些软件虽然设置了安装在非系统盘 但是有些插件文加夹会默认放在系统盘 当我们想把这些文件夹移到别的盘 怎么办呢 毕竟要想开机快 电脑运行更顺畅 还是把系统盘空间留大一点比较好 解决措施 将原来位置下的文件夹
  • 蓝桥杯.Java.进制转换

    在本节内容 我们主要解释三道题 十六进制转八进制 十六进制转十进制和十进制转十六进制 1 十六进制转八进制 问题描述 给定n个十六进制正整数 输出它们对应的八进制数 输入格式 输入的第一行为一个正整数n 1 lt n lt 10 接下来n行
  • pyquery用法详解

    PyQuery库也是一个非常强大又灵活的网页解析库 如果你有前端开发经验的 都应该接触过jQuery 那么PyQuery就是你非常绝佳的选择 PyQuery 是 Python 仿照 jQuery 的严格实现 语法与 jQuery 几乎完全相
  • 华为OD机试真题 Java 实现【矩阵中非1的元素个数】【2023 B卷 200分】,附详细解题思路

    目录 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 3 说明 先将 0 0 位置的值变为1 第一次同化 第二次同化 大家好 我是哪吒 一 题目描述 存在一个m n的二维数组
  • react-11(样式组件-组件)

    import React Component from react import ReactDOM from react dom client import styled from styled components const root
  • HBase(分布式、面向列、非结构化数据存储,基础框架,设计和操作)总结

    sqoop 总结 1 HBase 介绍 2 面向列数据库 2 1 HBase 与 传统关系数据库的区别 2 2 Hive 和 Hbase区别 2 3 Hbase 和 传统关系型数据库区别 3 Hbase 数据模型 4 HBase 基础架构
  • LeetCode-1324. Print Words Vertically

    Given a string s Return all the words vertically in the same order in which they appear in s Words are returned as a lis