算法题记录【华为od] 对称成字符串
题目描述
思路分析
构造出相应的字符串,之后输出相应的字符即可,
反向输出用的是遍历上一字符之后,依照判断输出,之后拼接数组即可
代码解析
let input = [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]; for (let i = 0; i < input.length; i++) { let a = input[i] //首行设置 let arr = [R] //开始递归 func(a[0] - 1, a[1] - 1, arr); } //target 横向 第n个字符串 //index 纵向 第几个字符 //arr 当前数组 //pollCount 循环次数 function func (target, index, arr, pollCount = 1) { middle = []; //循环次数与第几个字符串的判断 if (pollCount <= target) { for (let i = 0; i < arr.length; i++) { if (arr[i] == R) { middle.push(B) } else { middle.push(R) } } //利用concat进行数组链接 将数组转换为字符串 func(target, index, arr.concat(middle), pollCount + 1) } else { //横向遍历数组 for (let j = 0; j < arr.length; j++) { //输出结果 if (j == index) console.log(=>, arr[j]);; } } }
后话
只是记录,正在找工作中,各位老板缺前端的可以私信,会vue,react,ts,js,22届本科毕业,一年工作经验
下一篇:
salt盐度与用户密码加密机制