N字形变化 flag标签转换方向

题目:

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:

L C I R
E T O E S I I G
E D H N
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。

请你实现这个将字符串进行指定行数变换的函数:

string convert(string s, int numRows);
示例 1:

输入: s = "LEETCODEISHIRING", numRows = 3
输出: "LCIRETOESIIGEDHN"
示例 2:

输入: s = "LEETCODEISHIRING", numRows = 4
输出: "LDREOEIIECIHNTSG"
解释:

L D R
E O E I I
E C I H N
T S G

/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function(s, numRows) {
    if(numRows<2){
        return s;
    }
   let str = new Array();
    for(let i=0;i<numRows;i++){
        str[i] = "";
    }
    let index =0;
    let flag = -1;
    let j=0;
    while(index<s.length){
        str[j]+= s[index];
        index ++;
        if(j==0|| j==numRows-1){
            flag = -flag;
        }
        j +=flag;
    }

    return str.join("")

};

实现方式:主要是通过一个flag转换方向以及利用数组,将字符串遍历放到对应的数组之中,最后将数组进行合并

来源:https://leetcode-cn.com/problems/zigzag-conversion/solution/zzi-xing-bian-huan-by-jyd/

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zigzag-conversion
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/panjingshuang/p/11618470.html

时间: 2024-08-08 07:27:51

N字形变化 flag标签转换方向的相关文章

html 页面标签转换效果实例

一个HTML的页面标签转换效果,贴出来.供大家参考 先来一张图 如图,页面的左右两边都可以进行切换. 代码很简单,首先需要jquary的js. 主要HTML代码: <div id="tabbed_box_1" class="tabbed_box"> <div class="tabbed_area"> <ul class="tabs"> <li><a href="#

dedecms flag标签属性

头条[h] flag='h' 推荐[c] flag='c' 幻灯[f] flag='f' 特荐[a] flag='a' 滚动[s] flag='s' 加粗[b] flag='b' 图片[p] flag='p' 跳转[j] flag='j' att='s,p'  dedecms 属性两者同时生效 flag标签是用来限定文章的自定义属性,和noflag标签其实有相同的作用 两者的区别在于: noflag='c'  表示所有包含 'c' (推荐)属性的文章 noflag='c' 表示的则是不包含 'c

flag标签

int age; bool flag=false;//假设 一个值 try { Console.WriteLine("请输入你的年龄"); age = Convert.ToInt32(Console.ReadLine()); flag=true;//成立 } catch { //Console.WriteLine("输入有误"); Console.WriteLine("输入有误"); flag=false;//不成立 } if (flag ==

Go_16:GoLang中flag标签使用

直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myProgram [-s server] [-t isShowTimeStamps] <subject> \n") } func printMsg(message string) { log.P

GoLang中flag标签使用

正如其他语言一样,在 linux 系统上通过传入不同的参数来使得代码执行不同逻辑实现不同功能,这样的优点就是执行想要的既定逻辑而不需要修改代码重新编译与打包.在 Golang 语言中也为我们提供了相应的功能,直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myPro

将xml字符串的所有叶标签转换成Map集合

实际问题:对方服务器接口采用webservice方式返回xml报文,现需解析xml获取所有叶节点的标签名及携带的值 解决方案:利用dom4j解析xml并利用递归获取叶节点,将标签名及标签值封装到Map集合供业务调用 import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.

区块链创业,这些认识很重要!拥抱变化更要明确方向

在区块链发展的过程里,不断出现的各种区块链应用总能带给人们不一样的惊喜.除了区块应用在不断丰富,区块链本身的内部组织架构也在发生变化.当前,区块链的组织架构主要有以下几种形态.1.社区型:比特币( Bitcoin) ,数字货币,2009年至今.2.社区+基金会:以太坊( Ethereum) ,智能合约,2014年至今.3.基金会+公司型:公证通(Factom),防伪证明,2015年至今.4.公司制:各种联盟链.私链, 2015年至今.从以上四种形式分别看,基于社区形式的组织数量伴随着比特币201

echart-X轴标签文字方向

1. rotate斜体: axisLabel:{interval:0,rotate:45, margin:2, textStyle:{ color:"#222" }2. formatter:function(val){ return val.split("").join("\n"); }3. /** * <li>Echarts 中axisLabel中值太长自动换行处理:经测试:360.IE7-IE11.google.火狐 * 均能正常

关于在php中html标签的转换问题的解决

很多朋友在写php的时候,难免会遇到需要将html标签进行转义存储.比如存入数据库.xml文件等.而存储进去后,读取出来则需要转换成html输出.网上有许多人编写的转换函数,很长很难懂.其实php早就自带有这样的函数.大可不必自己编写. 下面分别介绍这两个函数. 1.htmlentities()函数: 说明:将html标签转换成特殊字符.例如将<script>转换成"<script>" 例子: [PHP] view plaincopy // An imagina