/**
* @param {string} s
* @param {number} numRows
* @return {string}
*/
var convert = function(s, numRows) {
if(numRows == 1){
return s;
}
var rows = [];
var flag = false;
var row = 0;
for(var i = 0; i < numRows; i++){
rows[i] = '';
}
for(var i = 0; i < s.length; i++){
if(row == 0||row == numRows - 1){
flag = !flag;
}
rows[row] +=s[i]
row += flag ? 1 : -1;
}
var str = "";
for(var i = 0; i < numRows; i++){
str += rows[i];
}
return str
};
先贴代码,小编在完成这道题的时候,出现了这样一个问题;
每一行的开头都会出现undefined
错误代码示例
/**
* @param {string} s
* @param {number} numRows
* @return {string}
*/
var convert = function(s, numRows) {
if(numRows == 1){
return s;
}
var rows = [];
var flag = false;
var row = 0;
for(var i = 0; i < s.length; i++){
if(row == 0||row == numRows - 1){
flag = !flag;
}
rows[row] +=s[i]
row += flag ? 1 : -1;
}
var str = "";
for(var i = 0; i < numRows; i++){
str += rows[i];
}
return str
};
仅仅只声明了一个数组,并未使其对应到每一行上,应该给每一行都声明出字符串,在进行拼接。
for(var i = 0; i < numRows; i++){
rows[i] = '';
}