力扣6.N字形变换

题目描述

在这里插入图片描述

思路

模拟轨迹,每当行数i到最顶(0),或者最底(numRows)的时候,就会反方向走。

用flag来标记方向,在题解里看到,真的很巧妙5555!

代码

class Solution {
   
    public String convert(String s, int numRows) {
   
        if(numRows < 2) return s;
        //用ArrayList,方便后续输出,链表里存的是可修改的StringBuilder类型
        List<StringBuilder> rows = new ArrayList<StringBuilder>();
        //遍历每一行,每一行的字符串为rows[i]
        for(int i = 0; i < numRows; i++) rows.add(new StringBuilder());
        //用flag标记方向
        int i = 0, flag = -1;
        for(char c : s.toCharArray()) {
   
        	//把s中的字符添加进rows[i]中
            rows.get(i).append(c);
            //每当到最顶或者最底时,由于flag的存在,i就会反向走
            if(i == 0 || i == numRows -1) flag = - flag;
            i += flag;
        }
        StringBuilder res = new StringBuilder();
        for(StringBuilder row : rows) res.append(row);
        return res.toString();
    }
}

相关推荐

  1. leetCode算法—6. N 字形变换

    2023-12-07 01:12:04       67 阅读
  2. 【算法题】6. N字形变换

    2023-12-07 01:12:04       61 阅读
  3. 数组|6. N 字形变换 12. 整数转罗马数字

    2023-12-07 01:12:04       63 阅读
  4. 第六题——Z字形变换

    2023-12-07 01:12:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 01:12:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 01:12:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 01:12:04       82 阅读
  4. Python语言-面向对象

    2023-12-07 01:12:04       91 阅读

热门阅读

  1. python通过ssh密钥等形式链接到redis服务器

    2023-12-07 01:12:04       52 阅读
  2. 鸿蒙学习资料

    2023-12-07 01:12:04       62 阅读
  3. Android跨进程通信,RPC,IPC

    2023-12-07 01:12:04       48 阅读
  4. EOS的eosjs的演进

    2023-12-07 01:12:04       64 阅读
  5. 谨慎使用android.view.SurfaceView.setVisibility方法

    2023-12-07 01:12:04       58 阅读
  6. localForage使用 IndexedDB / WebSQL存储

    2023-12-07 01:12:04       53 阅读
  7. 【MySQL工具】my2sql-快速解析binlog

    2023-12-07 01:12:04       41 阅读
  8. MySQL Binlog Digger 4.31

    2023-12-07 01:12:04       61 阅读
  9. C++线段求交:计算两条线段的交点

    2023-12-07 01:12:04       46 阅读
  10. 【C/C++指针】指针*与引用&的区别

    2023-12-07 01:12:04       59 阅读
  11. 【微服务】分布式限流如何实现

    2023-12-07 01:12:04       65 阅读
  12. Windows 安装 flash-attention 和 bitsandbytes

    2023-12-07 01:12:04       51 阅读