Leetcode日记(6)---ZigZag Conversion
2015-12-07 22:10
295 查看
首行距2*(nRows-1)
代码分析参照上面的图
//通过的代码 class Solution { public: string convert(string s, int numRows) { if(numRows<2 || s.size()<=numRows) return s; string res(s.size(),0); char *p=&res[0]; for(int i=0, j,k, step=(numRows-1)*2;i<numRows;++i) { if(i==0 || i==numRows-1) for(j=i;j<s.size();j+=step) *p++=s[j]; else for(j=i, k=i<<1;j<s.size();k=step-k,j+=k) *p++=s[j]; } return res; } };
public class Solution { public String convert(String s, int nRows) { int len = s.length(); if (len == 0 || nRows <= 1) return s; String[] ans = new String[nRows]; Arrays.fill(ans, ""); int row = 0, delta = 1; for (int i = 0; i < len; i++) { ans[row] += s.charAt(i); row += delta; if (row >= nRows) { row = nRows-2; delta = -1; } if (row < 0) { row = 1; delta = 1; } } String ret = ""; for (int i = 0; i < nRows; i++) { ret += ans[i]; } return ret; } }
相关文章推荐
- iOS开发 - 23.实用技术之定位
- iOS 从app跳转至WiFi设置
- java 获取MAC地址
- HDU 钱币兑换问题(完全背包?)
- iBatis学习第一天-------初识iBatis
- Controller 里面就只应该存放这些不能复用的代码(转)
- hadoop中job,jobtracker相关
- Leetcode186: Perfect Squares
- android - Settings
- 问题
- lucene学习教程
- hdu2602 Bone Collector (01背包)
- 线程的同步
- Linux基础2---Linux的发展历史
- 文件操作之打开文件
- 数据结构基础之堆排序(Java 实现)
- Extjs 刷新treePanel
- CentOS 7 安装多媒体播放器
- rm 命令
- c语言中复杂数据类型总结