首页 > 腾讯 8.24 ac代码
头像
yQpy.
编辑于 2020-08-23 23:48
+ 关注

腾讯 8.24 ac代码

1.删除链表第K个节点  AC100%
n,k=map(int,input().split())
a=list(map(int,input().split()))
res=a[:k-1]+a[k:]
ress=''
for x in res:
    ress+=str(x)+' '
print(ress[:-1])

2.求s中的所有子串字典序第k小的一个 ac 100%
a=input()

k=int(input())
res=[]
q=min(6,len(a))
for l in range(1,q):
    for i in range(len(a)-l+1):
        res.append(a[i:i+l])
res=list(set(res))
res.sort()
print(res[k-1])

3.给一个正整数N(1<=N<=1e12),把N拆成任意两个正整数相加,求这两个数的数位和相加的最大值。 ac 100%
def core(a):
    a=str(a)
    def dfs(now):
        if now=='':
            return 0
        res=0
        temp=int(now)
        temp//=10
        new=str(int(temp)-1)
        res=max(dfs(now[:-1])+int(now[-1]),res)
        if int(new)>=0:
            if now[-1]!='9':
                res=max(res,dfs(new)+10+int(now[-1]))
        return res
    return dfs(a)



n=int(input())
for _ in range(n):
    a=int(input())
    print(core(a))


5.给一个字符串s,求要把区间[l,r]全部分割成回文串的最少分割次数。AC 100%
s=input()
n=int(input())


dp={}
def dfs1(i,j):
    if (i,j) in dp:
        return dp[(i,j)]
    if i>j:
        return True
    if i==j:
        return True
    if j==i+1:
        return s[i]==s[j]
    if s[i]!=s[j]:
        return False
    res=dfs1(i+1,j-1)
    dp[(i,j)]=res
    return res


cache={}
def dfs(l,r):
    if (l,r) in cache:
        return cache[(l,r)]
    if l>r:
        return 0
    if l==r:
        return 1
    res=1e9
    for k in range(l,r+1):
        if dfs1(l,k):
            res=min(1+dfs(k+1,r),res)
    cache[(l,r)]=res
    return res


for _ in range(n):
    l,r=map(int,input().split())
    print(dfs(l-1,r-1))

好气,第三题考试的时候有一点BUG,一直通过0,刚考完就把BUG找出来了。

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐