LeetCode解题报告--ZigZag Conversion
来源:互联网 发布:找回照片软件 编辑:程序博客网 时间:2024/06/05 10:10
题目来源:https://leetcode.com/problems/zigzag-conversion/
P AH N
AP LS I I G
YI R
解法一:
间距为: icount = 2 * (nRows - 1)
每列的字符个数为:i = nRows[from 0 to (nRows - 1)]
中间未加粗字符其下标为: mid = j + icount - 2 * i (j : from 0 to s.length() - 1)
public static String convert(String s, int numRows) { int icount = 2 * (numRows - 1); String newStr = ""; if(numRows < 2 || s.length() <= 1) return s; else{ for(int i = 0;i < numRows;i ++){ for(int j = i;j < s.length();j += icount){ newStr += s.charAt(j); int mid = j + icount - 2 * i; if(i != 0 && i != numRows - 1 && mid >= 0 && mid < s.length()){ newStr += s.charAt(mid); } } } return newStr; } }
解法二:
将每层看层一个字符串,则共有nRows字符串,最后将其依次输出即可。
public static String convert(String s, int numRows) {
StringBuffer[] str = new StringBuffer[numRows]; boolean down = true; int j = 0; if(s.length() <= 1 || numRows <= 1) return s; for(int i = 0;i < str.length;i ++) str[i] = new StringBuffer(); for(int i = 0;i < s.length();i ++){ str[j].append(s.charAt(i)); if(j == 0) down = true; else if(j == numRows - 1) down =false; if(down) j ++; else j --; } StringBuffer newStr= new StringBuffer(); for(StringBuffer string : str) newStr.append(string.toString()); return newStr.toString(); }
0 0
- 【LeetCode】ZigZag Conversion 解题报告
- LeetCode ZigZag Conversion 解题报告
- LeetCode解题报告--ZigZag Conversion
- [LeetCode] ZigZag Conversion 解题报告
- [LeetCode] ZigZag Conversion 解题报告
- Leetcode ZigZag Conversion解题报告
- [leetcode] 6. ZigZag Conversion 解题报告
- LeetCode 6. ZigZag Conversion 解题报告
- [Leetcode] 6. ZigZag Conversion 解题报告
- leetcode解题报告6. ZigZag Conversion
- [LeetCode 解题报告]006.ZigZag Conversion
- 【LeetCode】6.ZigZag Conversion(Medium)解题报告
- LeetCode(6) ZigZag Conversion解题报告
- ZigZag Conversion解题报告
- LeetCodeProblem6 ZigZag Conversion解题报告
- LeetCode解题报告 6. ZigZag Conversion[easy]
- 【Leetcode】6.ZigZag Conversion 解题
- [Leetcode]解题文档-ZigZag Conversion
- 6.1学习内容 ndk编程释放内存,C语言中char*添加字符得方法,java二维数组的读取与生成
- 遗传算法代码
- android studio 给module配置git集成路径,再也不用小乌龟,再也不用sourcetree啦,速度杠杠滴
- opencv & qt study-(2)-打开video& camera
- myeclipse取消js校验
- LeetCode解题报告--ZigZag Conversion
- Python Show-Me-the-Code 第 0021题 密码加密
- [转载]nil,Nil,NULL 和NSNull的小结
- JavaScript中replace()方法使用时应该注意的几点
- 企业库一全套增删改
- Java-Fork/Join的简单例子
- iOS网络编程开发笔记1—JSON和XML数据解析
- 安卓 实现记住用户名和密码功能
- 总结SSH框架整合基础与需要的jar包