字节测开笔试-编程题

一共两道编程题100% 6%.....
(1)两个数组an、bn,数组cn=[ci=max(ai,bi)]。数组cn是根据an和bn的值动态变化的。定义了两种操作:op=1,x,y:交换ax和ay;op=2,x,y:交换bx和by。
输入:an,bn,m组操作[(1, x, y), (2, x, y), ......]
输出:m行,每行对应操作后的数组cn之和。
思路:暴力解法容易超时。可以先算cn的和sum,之后每次操作之前先让sum减去cx和cy,在进行操作并更新cx和cy,在得到sum = sum +cx +cy。这样就不用遍历cn求和,不会超时。

(2)小红拿到了一个仅有英文字母组成的字符串,她想知道某个单词在该字符串中出现了多少次?
输入用例:
S:bobob
T:bob
输出:
2
思路:直接调用python string.count()无法得到正确答案。例如”bobob”会视为有两个”bob”,单词后缀和前缀有重叠的部分也会算作新单词。直接使用暴力解法,逐个遍历S会超时。考虑用下标j遍历S每次匹配到一个单词T,j就往后移T/2个位置,这样可以把后缀算进去,但还是只能通过6%的用例。
全部评论
用下split拆分如何
点赞 回复 分享
发布于 2023-09-18 10:14 安徽
第一题都没看懂,第二题双指针应该好解
点赞 回复 分享
发布于 2023-09-18 15:34 上海

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务