• 【LeetCode 6. ZigZag Conversion】


    Description:

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

    P   A   H   N
    A P L S I I G
    Y   I   R
    

    And then read line by line: "PAHNAPLSIIGYIR"

    Write the code that will take a string and make this conversion given a number of rows:

    string convert(string s, int numRows);
    

    Example 1:

    Input: s = "PAYPALISHIRING", numRows = 3
    Output: "PAHNAPLSIIGYIR"
    

    Example 2:

    Input: s = "PAYPALISHIRING", numRows = 4
    Output: "PINALSIGYAHRPI"
    

    Explanation:

    P     I    N
    A   L S  I G
    Y A   H R
    P     I
    

    翻译:

    字符串“ PAYPALISHIRING”以Z字形模式写在给定的行数上,如下所示:(您可能希望以固定字体显示此模式以提高可读性)

    P   A   H   N
    A P L S I I G
    Y   I   R
    

    然后一行一行地读取:“ PAHNAPLSIIGYIR”

    编写代码,该代码将包含一个字符串,并根据行数进行此转换:


    Kotlin代码实现

    
     fun convert(s:String,numRows: Int):String{
       if(numRows<2) return s
        val rows = arrayListOf<StringBuilder>()
        for (i in 0 until numRows) {
            rows.add(StringBuilder())
        }
        
        var i=0
        var flag=-1
        for (c :Char in s.toCharArray()){
            rows[i].append(c)
            if(i==0||i==numRows-1) flag=-flag
            i+=flag
        }
    
        val res=StringBuilder()
        for (row :StringBuilder in rows){
            res.append(row)
        }
    }
    
    
    

    参考:
    https://leetcode.com/problems/zigzag-conversion

  • 相关阅读:
    广义表的创建和遍历
    dev c++ Boost库的安装
    NAT模式
    vmware桥接模式
    smb与samba
    利用Linux的Samba服务模拟NT域
    使用samba进行共享文件操作步骤
    安装chrome
    使用虚拟机上网第二步
    TCP协议三次握手过程分析
  • 原文地址:https://www.cnblogs.com/MillerKevin/p/12783172.html
Copyright © 2020-2023  润新知