交行今天的编程题
不给用草稿纸 没做出来。。。
以下是考后做出来的:
第一题:
//abcdefg abdecfg function main(str){ let n = Math.floor(str.length/2) if(str.length < 2**n-1){ console.log("WRONG PRINT") } //生成树 function createTree(letter){ let tree = {} let index = str.indexOf(letter) tree.value = letter tree.children = [] if(str[2*index+1]){ tree.children.push(createTree(str[2*index+1])) } if(str[2*index+2]){ tree.children.push(createTree(str[2*index+2])) } return tree } let tree = createTree(str[0]) let list = [] deepTraverse(tree,list) console.log(list.join(",")) } //深度递归 function deepTraverse(tree,list){ list.push(tree.value) if(tree.children.length !== 0){ tree.children.forEach(node => { deepTraverse(node,list) }) } } main("abcdefg")第二题:
//bankccom boccom function main(str1,str2){ let length1 = str1.length let length2 = str2.length let shorter = "" let longer = "" if(length1<length2){ shorter = str1 longer = str2 for(let i=0;i<length1;i++){ if(longer.indexOf(str1[i]) !== -1){ shorter = shorter.replace(str1[i],"") longer = longer.replace(str1[i],"") } } } if(length1>length2){ shorter = str2 longer = str1 for(let i=0;i<length2;i++){ if(longer.indexOf(str2[i]) !== -1){ shorter = shorter.replace(str2[i],"") longer = longer.replace(str2[i], "") } } } console.log(longer.length) } main("bankccom","boccom")