阿里9.15笔试(两道编程题)

第一道  过60%
开始还要低,时间太长问题:
发现后面循环太多有个情况是 一直转换没删除,这时跳出来,再判断就行
然后60%后,还有什么问题想不出来了
n,k = map(int,input().split())
S = list(input())
def del0(s):
    n = []
    i = 0
    if '1' in s:
        while s:
            if s[0]!='0':
                break
            else:
                s.pop(0)
    else:
        return 1
    return 0
def turn(s):
    for i in range(len(s)):
        if s[i]=='0':
            s[i] = '1'
        else:
            s[i] = '0'
            
for i in range(k):
    if not S:
        break
    turn(S)
    temp = del0(S)
    if temp==1:
        k -= i
        break
    print(S)
print(k)
if k%2==0:
    turn(S)
print(''.join(S))

第二道 6.66%
这过的百分比笑了,自己在线编译没问题:
主要是递归思想,求出最小的。
猜测是递归多了点,栈溢出了吧
a = input()
b = input()
n1 = len(a)
n2 = len(b)
c = ''
def test(a,b,c):
    if len(c)>100:
        return 100
    if c not in a and c not in b:
        return len(c)
    else:
        return min(test(a,b,c + '0'),test(a,b,c + '1'))
print(min(test(a,b,'0'),test(a,b,'1')))
有大佬知道问题所在吗?
这百分百不知道感觉要凉啊!
#阿里巴巴##笔试题型#
全部评论
太难了, 老哥 我通过率和你差不多, 还有戏吗🙃
1 回复
分享
发布于 2020-09-15 20:31
阿里秋招?老哥最近才投的阿里吗
1 回复
分享
发布于 2020-09-19 20:59
联易融
校招火热招聘中
官网直投
第一题折腾半天0.7,真不知道问题出在哪
点赞 回复
分享
发布于 2020-09-15 20:15
难顶
点赞 回复
分享
发布于 2020-09-15 20:18
做的时候没做出来,后来看了看类似的,不知道能不能通过找两个串的最短非公共子串长度,然后取较大的那个
点赞 回复
分享
发布于 2020-09-15 20:22
第一题要直接处理字符串,把f函数写出来模拟就会有一部分case超时
点赞 回复
分享
发布于 2020-09-15 21:15

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务