Java | Leetcode Java题解之第6题Z字形变换

题目:

题解:

java 复制代码
class Solution {
    public String convert(String s, int numRows) {
        int n = s.length(), r = numRows;
        if (r == 1 || r >= n) {
            return s;
        }
        int t = r * 2 - 2;
        int c = (n + t - 1) / t * (r - 1);
        char[][] mat = new char[r][c];
        for (int i = 0, x = 0, y = 0; i < n; ++i) {
            mat[x][y] = s.charAt(i);
            if (i % t < r - 1) {
                ++x; // 向下移动
            } else {
                --x;
                ++y; // 向右上移动
            }
        }
        StringBuffer ans = new StringBuffer();
        for (char[] row : mat) {
            for (char ch : row) {
                if (ch != 0) {
                    ans.append(ch);
                }
            }
        }
        return ans.toString();
    }
}
相关推荐
C***u1765 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
码界奇点8 分钟前
Java大数据在智能教育个性化学习资源推荐中的冷启动解决方案
java·大数据·学习·动画·推荐算法
safestar201211 分钟前
Elasticsearch分片设计:从数据分布失衡到集群稳定性实战
java·es
数智化架构师-Aloong14 分钟前
⚡️ PowerJob深度解析:Java生态下高并发分布式调度的终极选择
java·开发语言·分布式·系统架构
BD_Marathon25 分钟前
【IDEA】Debug(调试)
java·ide·intellij-idea
做怪小疯子37 分钟前
LeetCode 热题 100——二叉树——翻转二叉树
算法·leetcode·职场和发展
嘟嘟w37 分钟前
JVM性能调优
java
Godson_beginner40 分钟前
Sa-Token (java权限认证框架)
java·开发语言
头发那是一根不剩了40 分钟前
Spring Boot「多数据源并存」的设计思路,它与动态数据源又有什么区别?
java·spring boot·后端
o***592744 分钟前
spring注入static属性
java·后端·spring