本文共 1009 字,大约阅读时间需要 3 分钟。
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:
L C I R
E T O E S I I G E D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。
class Solution { public: string convert(string s, int numRows) { if(s.size()<=numRows || numRows==1){ //这两种情况是s都在第一列或s为空,直接输出s即可。 return s; } int n=0; int ass=2*numRows-2; string resstr=""; while(nnumRows){ //(避免flagn=1时溢出) resstr.push_back(s[flagn-2*n]); } resstr.push_back(s[flagn]); flagn += ass; } if(flagn-2*n <= s.size()-1){ resstr.push_back(s[flagn-2*n]); } } n++; } return resstr; }};
通过时间:
转载地址:http://snemb.baihongyu.com/