第五题有bug调不出来暂时 先说第六题
Z字形变换
主要思想 :这道题 有点像找规律的题 突破口其实是利用一个字符串数组去存储每段(每行)字符串 然后发现每次当遍历到最上面
最下面的时候 就会开始向右遍历

/**
* @param {string} s
* @param {number} numRows
* @return {string}
*/
var convert = function(s, numRows) {
// 如果总行数为1 直接返回s
if(numRows==1){
return s;
}
// 定义 runway 为方向 true为向下 反之向左
let runway=false;
let arrayNum=0;
let arr=[];
const minS = Math.min(s.length, numRows);
for(let i=0;i<minS;i++){
// 用一个字符串数组来存储数据 每个[i]代表着一行
arr[i]='';
}
// 在第一行和最后一行时开始变换方向
// 且控制arrayNum
for(const a of s){
arr[arrayNum]+=a;
//在这里我踩坑了 记住 if里面只是判断了方向问题 三元运算符才是判断数组位置 所以不能放入if中 方向可以不变 但数组位置一直在变
if(arrayNum==0||arrayNum==numRows-1){
runway=!runway;
}
arrayNum+=runway ? 1 : -1;
}
let icy='';
for(const arrs of arr){
icy+=arrs;
}
return icy;
};
2675

被折叠的 条评论
为什么被折叠?



