leetcode 13:zigzag conversion
来源:互联网 发布:矢量图设计软件 编辑:程序博客网 时间:2024/04/29 07:19
The string "PAYPALISHIRING"
is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
P A H NA P L S I I GY I RAnd then read line by line:
"PAHNAPLSIIGYIR"
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3)
should return "PAHNAPLSIIGYIR"
.
public class Solution { public String convert(String s, int nRows) { if(nRows<=1 || s.length()<=nRows) return s; int len = s.length(); StringBuilder sb = new StringBuilder(); for(int i=0; i<nRows; i++) { int j=i; while(j<len) { sb.append(s.charAt(j)); if(i!=0 && i!=nRows-1) { if(j + 2*(nRows-1-i) < len) sb.append(s.charAt(j + 2*(nRows-1-i) ) ); } j += 2*(nRows-1); } } return sb.toString(); }}
class Solution {public: string convert(string s, int nRows) { // Start typing your C/C++ solution below // DO NOT write int main() function int pattern_size = (nRows-1) * 2; string rel; const int len = s.size(); //first line for( int i=0; i<len; i+=pattern_size){ rel.push_back( s[i]); } //middle lines; for( int i=1; i< nRows-1; i++){ for( int j=i; j<len; j+=pattern_size ) { rel.push_back( s[j] ); int k = j+(nRows-1-i)*2; if(k<len) { rel.push_back( s[k] ); } } } //last line; for( int i=nRows-1; i<len; i+=pattern_size ) { rel.push_back( s[i] ); } return rel; }};
public class Solution { public String convert(String s, int nRows) { // Start typing your Java solution below // DO NOT write main() function if(s==null) return null; int sz = s.length(); if(nRows<=1) return s; //int i=0; StringBuilder sb = new StringBuilder(); for(int i=0; i<nRows; i++) { int j=i; while(j<sz) { sb.append( s.charAt(j) ); if( (i% (nRows-1)) != 0) { int k = j + (nRows-1-i)*2; //define new int k and save the old value in j for next loop if(k<sz) sb.append(s.charAt(k) ); //must check k<sz; may be exceed string length. } j+=2*(nRows-1); } } return sb.toString(); }}
- leetcode 13:zigzag conversion
- LeetCode: ZigZag Conversion
- LeetCode : ZigZag Conversion
- [LeetCode] Zigzag Conversion
- LeetCode 6 - ZigZag Conversion
- Leetcode : ZigZag Conversion
- 【leetcode】Zigzag Conversion
- [LeetCode]ZigZag Conversion
- leetcode ZigZag Conversion
- LeetCode-ZigZag Conversion
- LeetCode ZigZag Conversion
- LeetCode 6: ZigZag Conversion
- leetcode-006:ZigZag Conversion
- Leetcode: ZigZag Conversion
- [LeetCode]ZigZag Conversion
- [LeetCode] ZigZag Conversion
- [LeetCode]ZigZag Conversion
- leetcode: ZigZag Conversion
- T-SQL 查询优化之链接和平行
- [Other]计算机组成原理分解实验:实验三 二进制补码加法器
- 《精通direct3d图形及动画程序设计》学习(8)(2012.12.24)
- [游戏技术]求生之路插件报错问题
- php入门第四天
- leetcode 13:zigzag conversion
- android Content Provider详解七-实现ContentProvider类
- C# devpress 的gridview 控件的行拖拽
- experiment : 在私有堆和默认进程堆中, 测试能分配的堆空间总和, 每次能分配的最大堆空间
- Remove Duplicates from Sorted Array
- Android开发学习之三——第一个Android程序
- Android Camera调用流程
- Android Camera 使用小结
- 使用DMA的直接IO