美文网首页
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字

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

作者: 七月流火andy | 来源:发表于2019-03-06 00:41 被阅读12次

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

e.g:

  1. 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN"

  2. 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LDREOEIIECIHNTSG"

思路:

java代码

 /**
     * 题目4: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
     * e.g: 1. 输入: s = "LEETCODEISHIRING", numRows = 3  输出: "LCIRETOESIIGEDHN"
     *      2. 输入: s = "LEETCODEISHIRING", numRows = 4  输出: "LDREOEIIECIHNTSG"
     * @param s
     * @return
     */
    private static String solution05(String s, int numRows) {
        if (1 == numRows) {
            return s;
        }
        char[] input = s.toCharArray();
        int length = input.length;
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < numRows && i < length; i++) {
            // 第一列
            result.append(input[i]);

            for (int j = i + 2 * (numRows - 1); j < length || (j - 2 * i) < length; j = j + 2 * (numRows - 1)) {
                // 非首行和末行
                if (0 != i && (numRows - 1) != i) {
                    result.append(input[j - 2 * i]);
                }
                if (j < length) {
                    result.append(input[j]);
                }
            }
        }
        return result.toString();
    }

算法时间复杂度:结果长度为n,共会有n次append操作,所以复杂度为O(n)。

已经看到这里了,帮忙点个喜欢❤️呗,谢谢啦!!

相关文章

  • 字符串 - Z字变形

    6. Z 字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字...

  • LeetCode6.Z字形变换 JavaScript

    LeetCode6.Z字形变换 JavaScript 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z...

  • Z字形变换

    Z 字形变换 题目: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排...

  • 6、Z 字形变换

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

  • 字符串算法题Z字行变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

  • [LeetCode][M] 6. Z 字形变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

  • Leetcode 6 Z字形变换 java 9ms 击败95%

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

  • Leetcode JS/TS 6.z-字形变换.js

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

  • 6.Z字形变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

  • Q6 - medium - Z 字形变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEIS...

网友评论

      本文标题:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字

      本文链接:https://www.haomeiwen.com/subject/plkzuqtx.html