2021.4.17 360技术岗笔试

20214.17
360笔试编程题
第一道:
是输入一个数(1-4),计算它变为回文数的代价:
增加1,代价100;删除1,代价150
.。。。
具体忘记了,不会
第二道
将一个字符串中的所有ab全部变为bba使所有a在b右边,这是我答案,感觉可能会有问题,仅供参考,期待大佬分享代码
def is_ab(str) ->int:
    i = 0
    j = 0
    for i in range(len(str) - 1):
        if str[i] == 'a' and str[i+1] =='b':
            j = j+1
    return j

str = input()
num = is_ab(str)
while is_ab(str) != 0:
    str = str.replace('ab','bba')
    if is_ab(str) != 0:
        num = num + is_ab(str)
print(num)

#360公司##笔试题目#
全部评论
选择题里有好几道有问题的,“STMP”这个词给我看愣了,斐波那契数列前8位构建哈弗曼编码是从1开始而不是0,也没注明。回文串那道就是在leetcode1312. 让字符串成为回文串的最少插入次数的基础上,修改时,状态转移的方程里将修改次数变为代价,同时考虑删除和增加2种情况,不过最后只ac了70%,提示是非法访问,最后没找到原因,或许是特殊情况没处理
2 回复
分享
发布于 2021-04-17 21:58
第二题从右往左遍历一遍 第一次遇到a需要改变的次数是右边的b的个数 第二次遇到a需要改变的次数是第一个a和第二个a之间b的个数加上两倍的上一次
点赞 回复
分享
发布于 2021-04-17 17:26
百信银行
校招火热招聘中
官网直投
还记得第一题的范围吗,我记得好像是100,想知道是我眼瞎,还是他题目有问题。
点赞 回复
分享
发布于 2021-04-17 17:33

相关推荐

1 4 评论
分享
牛客网
牛客企业服务