zoukankan      html  css  js  c++  java
  • leetcode Z字形字符串

    题目:

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 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

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

    解法:

    class Solution {
        public String convert(String s, int numRows) {
            if (numRows<3){
                return "";
            }
            if (s.length()<4){
                return s;
            }
            StringBuffer[] sb=new StringBuffer[numRows];
            for (int i=0; i<numRows;i++){
                sb[i]=new StringBuffer();
            }
            for (int i=0;i<s.length();i++){
                int num=i%(2*numRows-2);
                if (num<numRows){
                    sb[num].append(s.charAt(i));
                }
                else{
                    sb[numRows-num%(numRows-1)-1].append(s.charAt(i));
                }
            }
            for(int i=1;i<numRows;i++){
                sb[0].append(sb[i]);
            }
            return sb[0].toString();
        }
    
        public static void main(String[] args) {
            Solution s=new Solution();
            System.out.println(s.convert("LEETCODEISHIRING",3));
    
        }
    }
    

      时间击败68.75%,内存击败98%

  • 相关阅读:
    Attributes.Add用途与用法
    Reapter控件中更换Td背景色
    SQL SERVER查询时间条件式写法
    C# Cache何时使用及使用方法
    C#中Cache用法
    用sql语句将两个时间相减,得到时间距的DateDiff()函数
    HTML5 带进度条的异步文件上传原理
    Node环境Grunt开发流
    HTML5的Web SQL Databases(html5 本地数据库)API
    移动端范围拖动选择效果
  • 原文地址:https://www.cnblogs.com/linwenbin/p/11890696.html
Copyright © 2011-2022 走看看