大疆笔试编程题是不是有问题呀!?

做的是 IBG移动端/前端/后端开发工程师A卷

虽然用的是 ACM 模式,但他给我们写好了输入输出,只用我们写核心函数就好了。

但是第一题他给的输入输出代码好像是有问题的????

我用的是 C++ 语言。第一题的输入大概是这样的:

2 // 一个数表示后面有几行
s1 // 字符串
s2 // 字符串

题目不难,写好之后一直不通过,就调试了一下,发现他的输入输出写错了?他给出的输入输出是这样的:

int main() {
    int res;

    int timePoints_size = 0;
    cin >> timePoints_size;
    vector<string> timePoints;
    string timePoints_item;
    for(int timePoints_i=0; timePoints_i<timePoints_size; timePoints_i++) {
        getline(cin, timePoints_item); // 这里有问题
        timePoints.push_back(timePoints_item);
    }

    Solution *s = new Solution();
    res = s->findMinDifference(timePoints);
    cout << res << endl;

    return 0;

}


刚刚上网查了一下,这篇文章有讲到这个问题:[利用getline函数输入字符串数组(注意点)](https://blog.csdn.net/weixin_44915226/article/details/109007465)

大概就是说:在 `cin >> n;` 的时候,将输入的 2 赋给了 n,但是,换行符还在输入流中,所以在下面第一次使用 getline 的时候,其实是将换行符输入给了变量,这样就导致最后一个字符串没有被输入进去。解决方法是在 `cin >> n;` 后面加一个 `cin.ignore()``cin.get()`

我当时的方法是将 `getline(cin, timePoints_item);` 改成了 `cin >> timePoints_item;`。这样也能通过。

当时反馈的时候,他还说我不懂??

因为这个耗费了好多时间,后面那题都没做。这也太坑了!~

问了一下,好像 Java 的输入输没有问题。

#大疆笔试##大疆校招##大疆招聘##大疆##大疆2023校招笔试心得体会#
全部评论
是的,那题c++输入有问题,改成cin就行了
2 回复 分享
发布于 2022-08-07 20:36
Java好像确实正常,有一说一,我第一次见大疆这种模式的笔试题,既不是ACM,但乍一看也不像核心代码模式,最后仔细一看,就是核心代码模式
2 回复 分享
发布于 2022-08-07 20:40
真的坑爹 卡在这20多分钟
点赞 回复 分享
发布于 2022-08-07 21:33
加一,我也是因为这个问题一直调试弄了将近二十分钟
点赞 回复 分享
发布于 2022-08-07 22:30
+1 一直在调 最后才发现给的代码错了,都没有时间做第二题
点赞 回复 分享
发布于 2022-08-07 22:37

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 22:29
点赞 评论 收藏
分享
评论
4
4
分享
牛客网
牛客企业服务