3.28百度笔试复盘
选择题和多项选择
计算机网络,操作系统,linux命令,计组,mysql语句基本都考了
感觉linux命令可能不太会做,因为平时不会用到那么多
模糊记忆
- 下载压缩包文件如果本机事先没有缓存和服务器IP,要使用什么应用层协议
- Linux less命令
- mysq update语法
- left、right 和 inner join有什么区别
- cut -f 3,print $3,uniq -cd和uniq-c
- mysql like区分大小写问题
- 作业和进程的区别
- cpu属于可掠夺资源吗,磁带机属于可掠夺资源吗
- cache control,
*/*
语法
多选题还挺有意思的,考的都是C++语法
- auto推导类型protected的作用
- operator delete的流程
算法题
第一题(过了30%)
第一题是,给定N,然后有N个数,代表着权值。然后有长度为N的字符串RBRBBBBR
(以R和B组成的)
1 2 3 R B R
要做的事情就是把B和R组合起来,求他们对应的权值相乘之和
例如1*2+2*3=8
我考试的时候蠢了,没有想到把R对应的权值全部相加然后把B的权值相加,然后把他们的权值再相乘
(R1+R2+R3+...+Rn) * (B1+B2+B3+...+Bn)
第二题
单调栈裸题
给定一个字符串,看看删除哪些字符之后能成为最大的数,例如
给定的:0.411111543 删除411111和4之后,字符串变成 0.543,最大
我一开始把小数点之后的数字和下标存下来,然后排序之后用贪心来做,没想到只过了16.67%。。。
后面用单调栈做了就ok了
第三题
不太懂怎么做,最后用DFS暴力做了
给定一棵树,和每个节点的权值。
给定一系列u,v,表示u,v节点之间有边。
然后给定n个操作,每个操作有x和y
x表示以x这个节点为根节点以及其子树,进行操作
y表示,把y乘上以x这个节点为根节点以及其子树的节点的权值
求过了n个操作之后,每个节点的后置0有几个。
其实有后置0主要是看2和5有多少个,然后建树模拟这n个操作,数一下2和5的个数。。。
但是dfs没有全过hhh