什么APP可以做网站,深圳做公司网站,如何建立网站快捷链接,网站设计工具更好的做网站leetcode 150道题 计划花两个月时候刷完#xff0c;今天#xff08;第八天#xff09;完成了1道(20)150#xff1a;
这个题花了我快 2个小时。。。
20#xff1a;#xff08;6. N 字形变换#xff09;题目描述#xff1a;
将一个给定字符串 s 根据给定的行数 numRow…leetcode 150道题 计划花两个月时候刷完今天第八天完成了1道(20)150
这个题花了我快 2个小时。。。
206. N 字形变换题目描述
将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 PAYPALISHIRING 行数为 3 时排列如下
P A H N
A P L S I I G
Y I R
之后你的输出需要从左往右逐行读取产生出一个新的字符串比如PAHNAPLSIIGYIR。
示例 2
输入s PAYPALISHIRING, numRows 4
输出PINALSIGYAHRPI
解释
P I N
A L S I G
Y A H R
P I第一版就写了一版我看解题也是模拟好像就是模拟找规律的题
class Solution {public String convert(String s, int numRows) {int lens.length();if(len1||numRows1||lennumRows){return s;}StringBuilder sbnew StringBuilder();int index0;int count(numRows-1)*2;// 第一行 直接算间隔 就可以int numlen%count0?len/count:(len/count)1;for(int i0;inum;i){sb.append(s.charAt(index));indexcount;}// 中间需要特殊处理 也是有规律的//但是需要每次重置起始位置index0;for(int i1;inumRows-1;i){int inCount(numRows-i-1)*2;int inIndexi;while(inIndexlen){int tempinIndexcount;for(int j0;j2;j){if(inIndexlen){break;}sb.append(s.charAt(inIndex));inIndexinCount;}//重置起始位置inIndextemp;}}// 最后一行 也是直接算间隔 就可以indexnumRows-1;for(int i0;inum;i){sb.append(s.charAt(index));if(indexcountlen){break;}indexcount;}return sb.toString();}
}今天这个题搞得时间太长了。。只写了一道题明天加油 早日跳槽这道题对我来说真的不容易可以说汗流浃背。。