当前位置: 首页 > article >正文

Leetcode Z字形变换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

java 代码实现

class Solution {
    public String convert(String s, int numRows) {
        //特殊情况处理
        if(numRows == 1 || s.length() <= numRows) return s;

        //定义cycleLen
        int cycleLen = 2 * numRows - 2;
        //利用 index 下标来跳跃遍历
        int index = 0; //记录字符串s的字符下标
        int add = 0; //除了第一行和最后一行以外其他行内两个字符之间的下标间距
        StringBuilder ret = new StringBuilder();
        for(int i = 0; i < numRows; i++) { //逐行处理
            index = i;
            add = i * 2;
            while(index < s.length()) {
                ret.append(s.charAt(index)); //当前行的第一个字符,因为最开始第一列是竖着排列
                //计算当前行下一个字符的下标间距
                add = cycleLen - add;
                //第 0 行和最后一行使用 step 间距, 其余使用 add 间距
                index += (i == 0 || i == numRows - 1)? cycleLen : add;
            }
        }
        return ret.toString();
    }
}

http://www.kler.cn/a/394996.html

相关文章:

  • 【赵渝强老师】MongoDB逻辑存储结构
  • Issac ROS navigation测试
  • 【Linux探索学习】第二十三弹——理解文件系统:认识硬件、探索文件在硬件上的存储问题
  • 用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
  • web-密码安全口令
  • 重温设计模式--组合模式
  • 【NLP优化】Ubuntu 20.04 下 源码安装 CasADi + Ipopt / acados
  • 【AI】【提高认知】通用人工智能才是目标:解析迁移学习与通用智能的挑战与前景
  • 启动QT时,出现找不到python27.dll的问题报错
  • 「QT」文件类 之 QFileSystemWatcher 文件系统监视器类
  • 开始使用 Elastic AI Assistant 进行可观察性和 Microsoft Azure OpenAI
  • fastadmin中动态下拉组件(SelectPage)的使用
  • 【golang-技巧】-自定义k8s-operator-by kubebuilder
  • ASP.NET MVC宠物商城系统
  • 【3D Slicer】的小白入门使用指南七
  • CPU的性能指标总结(学习笔记)
  • Android开发|关于Okhttp发送网络请求
  • 深度学习--正则化
  • Java | Leetcode Java题解之第560题和为K的子数组
  • MySQL多系统安装配置教程(Windows、Ubuntu、Centos)
  • 【Python无敌】在 QGIS 中使用 Python
  • 【MySQL】MySQL中的函数之REGEXP_LIKE
  • 上海市计算机学会竞赛平台2024年8月月赛乙组字符串的种类
  • Centos安装Elasticsearch教程
  • Leetcode 791 Custom Sort String
  • 零碎01-登录验证