zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    理财-4
    “大锅”遇险记
    今日份灵感开发
    持续集成简介
    redis clusert分布式集群
    redis 哨兵
    redis 主从复制
    Redis新特性ACL安全策略
    redis 快照持久化RDB和AOF
    redis 基础常用命令
  • 原文地址:https://www.cnblogs.com/MillerKevin/p/12783172.html
Copyright © 2011-2022 走看看