我是菜B,我是菜B,我是菜B。。。
-
题型:
39道单选,1道多选,,总共40分
2道编程题,总共60分
-
类型
选择题涉及计网、JS基础、CSS基础、正则、数据结构、算法、浏览器原理、canvas等,乱七八糟
算法题:字符串、dp
算法题1:
把所有a放到b的右边,如ab变为bba,求最小操作次数
示例
ab => bba 一次操作
aab => abba => bbaba =>bbbbaa 三次操作
//我只能AC45%,我也太菜了。。。求大神解答 while (line = read_line()) { let str = line; let step = 0; let stack = str.split(''); if (!str.length || !stack.includes('b')) { print(0) } for (let i = stack.length - 1; i >= 1; i--) { if (stack[i] === 'b' && stack[i - 1] === 'a') { replace(stack, i); i = stack.length - 1; } } print(step) function replace(stack, index) { //a换为b stack.splice(index - 1, 1, 'b'); //b后面加a stack.splice(index + 1, 0, 'a'); return stack } }
算法题2:
把只含1,2,3,4的字符串转化为回文,你可以增加或删除,但需要付出代价,求把字符串转化为回文的最小代价。
增加1:100,删除1:120
增加2:200,删除2:350
增加3:360,删除3:200
增加4:220,删除4:320
示例
12322,最小代价是300,
12322 => 1223221 或 2123212 增加一个1和一个2
//没写出了。。。。。。。
全部评论
(4) 回帖