百度暑期前端 笔试

第一题:


没有用map,直接把字符串sort以后比较是否相等

#include<bits/stdc++.h>
using namespace std;

int t;
string s;

int main () {
    cin >> t;
    string tar = "Baidu";
    sort(tar.begin(), tar.end());
    while(t--) {
        cin >> s;
        sort(s.begin(), s.end());
        if(s == tar)
            puts("Yes");
        else
            puts("No");
    }
    
    return 0;
}

第二题:


题目看了半天才看懂,解法用的滑动窗口

#include<bits/stdc++.h>
using namespace std;

int t, k, n;
int a[10100];
unordered_map<int, int> mp;

int main () {
    cin >> t;
    while(t--) {
        mp.clear();
        cin >> n >> k;
        set<int> st;
        for(int i = 0; i < n; ++i) {
            cin >> a[i];
            st.insert(a[i]);
            mp[a[i]]++;            
        }
        vector<int> v;
        sort(a, a + n);
        n = st.size();
        for(int i = 0; i < n; ++i) {
            a[i] = *st.begin();   
            st.erase(a[i]);
        }
        for(int i = 0; i < n; ++i) {
            v.push_back(mp[a[i]]);
        }
        int flag = false, sum = 0;
        int l = 0, r = 0;
        while(r < v.size()) {
            sum += v[r];
            if(sum > k) {
                sum -= v[l];
                l++;
                if(l > r) {
                    r = l;
				}
            } else if(sum < k) {
                r++;
            } else {
                cout << a[l] << ' ' << a[r] << endl;
                flag = true;
                break;
            }
        }
        if(!flag) {
            if(sum == k)
                cout << a[l] << ' ' << a[r] << endl;
            else
                puts("-1");
        }
    }
    
    return 0;
}

第三题(65%测试点)


一开始想先看看能骗多少分,不断拼接 red 循环直到 x,但是长度会超过限制的 1e5,好像过了65%。然后想太复杂了,越做分数越低,结束后写了一版不知道能对多少。

65%版本:

#include<bits/stdc++.h>
using namespace std;

int x;
int main () {
    cin >> x;
    string s = "", base = "red";
    while(s.length() + 3 < x) {
        s += base;
    }
    if(s.length() == x)
        cout << s << endl;
    else {
        s += base.substr(0, x - s.length());
        cout << s << endl;
    }
    return 0;
}

复盘版本:

思路:一个单字符循环的字符串,含有 n(n-1)/2+n 个回文子串,于是想先尽可能用 rrrrr循环和 eeeee循环填充(比如尝试用rrrrr循环凑 x/2 个回文串,填不满的部分后面再说),剩下的先填一个d(因为如果再填一个r,会多一个回文),如果还有剩就继续填 red 循环。

#include<bits/stdc++.h>
using namespace std;

int x;

int main () {
    cin >> x;
    string s = "", base = "red";
    int n = 1;
    while(n * (n - 1) / 2 + n <= x / 2) {
        n++;
    }
    n--;
    //  先填 n 个 r 和 n 个 e 
    int len = (n * (n - 1) / 2 + n) * 2;
    s += string(n, 'r') + string(n, 'e');
    if(len == x) {
        cout << s << endl;
        return 0;
	}
	//  有剩下的,再填个 d 
    s += 'd';
    len += 1;
    //	还有剩,就填 red 循环 
    while(len + 3 < x) {
        s += base;
        len += 3;
    }
    if(len == x) {
        cout << s << endl;
	}
    else {
        s += base.substr(0, x - len);
        cout << s << endl;
    }
    
    return 0;
}
#笔试复盘##百度2024暑期实习#
全部评论
第一题没想到还有这种写法,记得了,以后我也会了
2
送花
回复
分享
发布于 2023-03-13 23:48 广东
我前两题py导包哈希表第三题直接输入red过4%交卷
1
送花
回复
分享
发布于 2023-03-14 13:47 北京
滴滴
校招火热招聘中
官网直投
咋拍的照(doge
点赞
送花
回复
分享
发布于 2023-03-13 22:25 北京
1、3和后端题一样😂另外我也好好奇咋截的图
点赞
送花
回复
分享
发布于 2023-03-13 22:30 上海
你是更喜欢C++嘛
点赞
送花
回复
分享
发布于 2023-03-13 22:43 湖北

相关推荐

刚开始问了几个&nbsp;Go&nbsp;的简单八股,答的跟&nbsp;shi&nbsp;一样,后面答的也稀烂。面了&nbsp;40&nbsp;分钟,最后反问都不好意思问了,结束后半小时看了下流程已结束。1.&nbsp;自我介绍2.&nbsp;Go&nbsp;的&nbsp;&nbsp;map&nbsp;是并发安全的吗3.&nbsp;channel&nbsp;有无&nbsp;buf&nbsp;有什么区别4.&nbsp;向一个已经关闭的&nbsp;channel&nbsp;发数据会发生什么5.&nbsp;从一个已经关闭的&nbsp;channel&nbsp;读数据会发生什么6.&nbsp;slice&nbsp;len&nbsp;和&nbsp;cap&nbsp;的区别7.&nbsp;slice&nbsp;的扩容8.&nbsp;channel&nbsp;10&nbsp;个数据,读第&nbsp;10&nbsp;个数据的返回值,第&nbsp;11&nbsp;次,这时&nbsp;channel&nbsp;关闭会发生什么9.&nbsp;如何判断一个&nbsp;channel&nbsp;是否是关闭状态10.&nbsp;动态库和静态库的区别11.&nbsp;main&nbsp;函数用了某些&nbsp;so&nbsp;库,进程启动时它是如何找到依赖的动态库的12.&nbsp;堆和栈的区别13.&nbsp;C++&nbsp;局部变量分配在什么地方14.&nbsp;Go&nbsp;局部变量分配在什么地方15.&nbsp;局部变量分配位置的分析在什么阶段完成的16.&nbsp;拷打项目17.&nbsp;程序编译链接过程18.&nbsp;.o&nbsp;文件和&nbsp;.elf&nbsp;文件的区别19.&nbsp;HTTP&nbsp;连接建立过程20.&nbsp;HTTPS&nbsp;加密过程21.&nbsp;TCP&nbsp;三次握手22.&nbsp;SYN&nbsp;洪水攻击23.&nbsp;HTTP1&nbsp;和&nbsp;HTTP2&nbsp;的区别24.&nbsp;HTTP1&nbsp;有什么缺陷25.&nbsp;HTTP&nbsp;连接是怎么被复用的26.&nbsp;keep-alive&nbsp;是怎么实现的27.&nbsp;MySQL&nbsp;有哪些锁、怎么加的、在什么时间段加的28.&nbsp;Docker&nbsp;了解过吗29.&nbsp;平常怎么用&nbsp;git30.&nbsp;怎么知道一个端口是否被监听31.&nbsp;怎么判断远程服务端口是否被监听32.&nbsp;怎么理解递归,它有什么问题33.&nbsp;C++&nbsp;中栈有多大34.&nbsp;怎么解决递归爆栈问题35.&nbsp;用什么命令可以获取域名的&nbsp;ip36.&nbsp;DNS&nbsp;解析过程37.&nbsp;文件&nbsp;A&nbsp;客户端访问&nbsp;ip,文件&nbsp;B&nbsp;为黑名单&nbsp;ip,怎么在文件&nbsp;A&nbsp;中找出不在黑名单中的&nbsp;ip&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;文件&nbsp;A&nbsp;很大、文件&nbsp;B&nbsp;很小&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;文件&nbsp;B&nbsp;也大到内存放不下
点赞 评论 收藏
转发
10 29 评论
分享
牛客网
牛客企业服务