资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

23.5.10 每日一道LeetCode(昨天没写,但是前天写了两题)

Java 更新时间: 发布时间: 计算机考试归档 最新发布

23.5.10 每日一道LeetCode(昨天没写,但是前天写了两题)

6. N字形变换

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

比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:

P    A     H     N
A P L  S I   I  G
Y     I      R
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。

请你实现这个将字符串进行指定行数变换的函数:

string convert(string s, int numRows);

Java版:

        比较简单,就不用Go写了。

class Solution {    public String convert(String s, int numRows) {        int inc;        if (numRows == 1) {            return s;        }        String rst = "";        char[] c = s.toCharArray();        for (int i = 0; i < numRows; i++) {            int temp = i;            if (i == 0 || i == numRows - 1) {                inc = 2 * (numRows - 1);                while (temp < s.length()) {                    rst += c[temp];                    temp += inc;                }            } else {                inc =  2 * (numRows - 1) - 2 * i;                while (temp < s.length()) {                    rst += c[temp];                    temp += inc;                    inc = 2 * (numRows - 1) - inc;                }            }        }        return rst;    }}

总结

        这题纯纯找规律,脑子还是不大好用,半小时才想出来什么规律,又半小时才写出来。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097985.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【23.5.10 每日一道LeetCode(昨天没写,但是前天写了两题)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2