交行今天的编程题
不给用草稿纸 没做出来。。。
以下是考后做出来的:
第一题:
//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")
查看7道真题和解析