您的位置:首页 > 财经 > 金融 > 力扣6.Z字形变换

力扣6.Z字形变换

2024/12/23 10:30:30 来源:https://blog.csdn.net/2401_83010439/article/details/141758339  浏览:    关键词:力扣6.Z字形变换

class Solution {
    public String convert(String s, int numRows) {
        int length = s.length(); // 获取字符串的长度
        char[] arr = s.toCharArray(); // 将字符串转换为字符数组
        char[] res = new char[length]; // 创建一个与原字符串长度相同的字符数组,用于存放结果

        if(numRows == 1 || numRows > length) { // 如果行数为1或者大于字符串长度,直接返回原字符串
            return s;
        }

        // 初始化变量
        int index = 0; // 结果数组的索引
        int left = numRows * 2 - 2; // 当前行的左侧间隔
        int right = 0; // 当前行的右侧间隔

        // 遍历每一行
        for (int i = 0; i < numRows; i++, left -= 2, right += 2) {
            res[index++] = arr[i]; // 将当前行的首字符放入结果数组
            // 遍历当前行的字符
            for (int j = i; j < length;) {
                j += left; // 计算下一个字符的位置
                if (left != 0 && j < length) { // 如果位置合法,将字符放入结果数组
                    res[index++] = arr[j];
                }
                j += right; // 计算下一个字符的位置
                if (right != 0 && j < length) { // 如果位置合法,将字符放入结果数组
                    res[index++] = arr[j];
                }
            }
        }
        return String.valueOf(res); // 将字符数组转换为字符串并返回
    }
}
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com