leetcode[ZigZag Conversion]//待整理多种解法
来源:互联网 发布:淘宝店铺提高流量 编辑:程序博客网 时间:2024/05/21 20:26
解法一:
class Solution { public String convert(String s, int numRows) { if(numRows < 2){//一行的直接返回原字符串即可 return s; } StringBuilder[] row = new StringBuilder[numRows];//这个只是创建了numRows个字符串的引用 for(int i = 0; i < row.length; i++){ row[i] = new StringBuilder();//每一个引用还要创建具体的字符串对象,java数组需要注意这个,区分对象和基本类型 } boolean upOrDown = true;//upOrDown为true时代表在向下挪动row,反之代表在向上挪动row int nowMove = 0;//代表现在移动到了第几行 for(int i = 0; i < s.length(); i++){ char get = s.charAt(i); if(upOrDown){//代表在向下移动 row[nowMove++].append(get);//向第nowMove行的字符串增加 } else{ row[nowMove--].append(get);//代表在向上移动 } if(nowMove >= numRows || nowMove <= -1){//因为处理完了这一行再自增、自减的,所以需要多超过1的限度 upOrDown = upOrDown ^ true;//取反 //取反了还要修改nowMove的值,变化量是2,因为之前已经取了第一个和最后一个 //只能针对行数大于等于2的,否则会越界 nowMove = nowMove >= numRows ? nowMove-2 : nowMove+2; } //System.out.println(nowMove); } StringBuilder res = new StringBuilder(); for(int i = 0; i < numRows; i++){//按横排整理结果字符串 res.append(row[i]); } return res.toString(); }}
阅读全文
0 0
- leetcode[ZigZag Conversion]//待整理多种解法
- leetcode [Path Sum]//待整理多种解法
- leetcode [Majority Element]//待整理多种解法
- leetcode [Rotate Array]//待整理多种解法
- leetcode [Reverse Bits]//待整理多种解法
- leetcode [Happy Number]//待整理多种解法
- leetcode [Isomorphic Strings]//待整理多种解法
- leetcode [Contains Duplicate]//待整理多种解法
- leetcode[Add Digits]//待整理多种解法
- leetcode[Ugly Number]//待整理多种解法
- leetcode[Missing Number]//待整理多种解法
- leetcode[Word Pattern]//待整理多种解法
- leetcode[Ransom Note]//待整理多种解法
- leetcode[Longest Palindrome]//待整理多种解法
- leetcode[Fizz Buzz]//待整理多种解法
- leetcode[Add Strings]//待整理多种解法
- leetcode[Hamming Distance]//待整理多种解法
- leetcode[Island Perimeter]//待整理多种解法
- HttpServlet和GenericServlet
- 最新Visual Studio Tools For Unity 安装使用解析
- 数据结构封装之《SQueue栈式队列》
- Android photoview报错java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1
- 算法学习2-6排列
- leetcode[ZigZag Conversion]//待整理多种解法
- 多线程学习笔记2-GCD
- css3
- Longest Increasing Subsequence Size (N log N)
- 一个透明头像
- nginx目录安全设置
- Mysql kill 命令
- 半年小总结
- Thread--01在线程池使用Callable和Runnable的区别以及如何关闭线程