第一题对字符串a从左往右搜,遇到第一个小于串b的数字就把串b塞到前面。第二题,给两个数组,对于每一个数字,输出自己所在数组中小于自己的数字的个数以及另一个数组中大于自己的数字个数,lower_bound就行。第三题,排序次数,考虑一个1-n的排列,如果1不在最前,n不在最后,那么1-n一定要占用一次排序次数,否则(可能)不占用排序次数,处理完1~n处理2~n-2,递归即可。要注意一种情况:1、3、2、4,虽然1、4看起来排好了,但是排2、3之后还得排1、4,所以实际上需要的排序的是从1、n到最后一对乱序的数字(比如这里最后一对是2、3,那排序次数就是2).第四题,判两棵树的,不用建树,直接存数组即可。设第一个数组长为n,第二个长为m。首先判第二个数组的前n个是否和第一个数组的前n个相同,不同就no。然后对于第二个数字第n个以后的部分,就是新长出来的节点,开个数组记录一下他们的父亲。如果有父亲>n的也no,有的父亲有超过1个儿子的也no。第五题,字符串题。一个简单的方法是只看,①左边为\,说明这是一个文件。③左边不是\,说明这个括号是文件夹的开头。模拟建树即可。最后暴力遍历每个节点,如果一个节点为文件,则把该节点,以及一直往上走的路径上的节点全部染色,代表这些节点非空。最后统计没有染色的节点个数,就是空的文件夹。
点赞 2
评论 5
全部评论

相关推荐

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