2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题
先来一波吐槽:选择题全是不定项选择,考的内容在我看来,“反正我接受唔到咯”。
比如:
1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词“消息队列”)。
EXM???服,我还真从来没关注过Windows的任何机制。手动黑人问号。
x. 以下哪些属于Linux的发行版本?A.OpenSUSE B.Red-hat C. CentOS D.Ubuntu
EXM???所谓的考Linux就是这样考的?再次手动黑人问号。
还有一题问的是Linux设备调用接口什么的,没搞过,真不清楚,瞎选。
其他的还挺常规,比如问哪些属于交换排序、哪些排序算法序列的初始状态不影响比较次数、多态、死锁、计算机网络(考的是FTP的传输模式)等。
-----------------分割线------------------
两道题,都很简单。
1. 给定一个字符串,找到第一个只出现一次的字符的下标,找不到输出-1。
sample:
输入:“abcdefcba”
输出:3
解法:先遍历字符串,用一个map记录每个字符出现的次数,再次遍历字符串,找到第一个只出现一次的字符,复杂度为O(n)。
#include <iostream>
#include <string>
#include <cstring>
#include <map>
using namespace std; int getCharIndex(const char *str)
{
map<char, int> cmap;
int length = strlen(str);
for (int i = ; i < length; ++i)
++ cmap[str[i]]; int ret = -;
for (int i = ; i < length; ++i)
if (cmap[str[i]] == )
{
ret = i;
break;
} return ret;
} int main()
{
string str;
cin >> str;
cout << getCharIndex(str.c_str()) << endl;
}
2. n个人围着圆桌坐,编号1~n,从第k个开始报数,报到m者出列,后一个继续从1开始报数。问最后一个出列者的编号。输入n, k, m.
sample1:
输入:3 1 1
输出:3
sample2:
输入:3 2 2
输出:1
解法:首先,看到这种题目就感觉会有特别的规律,但思前想后还是归纳不出来,只好用循环链表直接模拟,复杂度O(nm)。
#include <iostream> using namespace std; typedef struct Node
{
int num;
Node *next;
} Node; // 构造循环链表
void construct(Node **head, int n)
{
*head = new Node;
(*head)->num = ;
(*head)->next = NULL;
Node *pNode = *head; for (int i = ; i <= n; i++)
{
Node *pNew = new Node;
pNew->num = i;
pNew->next = NULL;
while (pNode->next != NULL)
pNode = pNode->next; pNode->next = pNew;
pNode = pNode->next;
}
pNode->next = *head;
} int solve(int n, int k, int m)
{
// 过滤非法输入
if (n < || k < || k > n || m <= )
return ; // 数到1就出列的情况下,即从k开始逐个出列
// 若k = 1, 最后一个为n; 否则为k-1.
else if (m == )
return (k == ? n : k-); // 构造循环链表
Node *head = NULL;
construct(&head, n); // 从k开始报数,故先跳到第k个
Node *pNode = head;
for (int i = k; i > ; --i)
pNode = pNode->next; // 模拟报数n-1次, 每次出列一人,删除出列的结点
int num = ;
Node *pPrev;
for (int i = ; i < n - ; i++)
{
while (num < m)
{
pPrev = pNode;
pNode = pNode->next;
++num;
}
Node *pToDel = pNode;
pNode = pNode->next;
pPrev->next = pNode;
delete pToDel;
num = ;
}
int ret = pNode->num;
delete pNode; // 避免内存泄露,释放最后一个结点
return ret;
}
int main()
{
int n, k, m;
int t;
cin >> t;
while (t--)
{
cin >> n >> k >> m;
cout << solve(n, k, m) << endl;
}
}
总结:编程题很简单,但选择题感觉错了挺多的,估计笔试都过不了,有点不开心。反正我GG了,后面那批兄弟姐妹们加油。
2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题的更多相关文章
- cvte春招测试面试记录
cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...
- 2017百度春招<不等式排列>
题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊 ...
- 2017百度春招<有趣的排序>
题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #inclu ...
- 2017百度春招<度度熊买帽子的问题>
题目: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 数组中找到第三小的数字 注意边界条件 用STL中的set来 ...
- 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)
对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...
- CVTE前端笔试编程题
这些题目是做完笔试之后,在别的地方找到的,现在附上. 1.(1)这题考察的怎么把参数转换为数组,然后再截取你想要的位数. function C(){ var a_args=Array.prototyp ...
- 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing
本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...
- [找工作] 2019秋招|从春招到秋招,Java岗经验总结(收获AT)
转自(有更多) https://blog.csdn.net/zj15527620802/article/month/2018/10 前言 找工作是一件辛酸而又难忘的历程.经历过焦虑.等待.希望,我们最 ...
- 痛吻过YY寻找到真爱的三非渣本春招之路
写下这篇文章可能就不是大家乐于见闻的面经了,更多是深入一些面试细节. 前言 我猜拿到了BAT等一线互联网公司Offer的小伙伴或者那些老鸟看到这条标题的时候会不屑一顾,认为YY这种级别的公司是属于二线 ...
随机推荐
- 使用SSH搭建用户注册登录系统
[转]http://blog.sina.com.cn/s/blog_a6a6b3cd01017c57.html 什么是SSH? SSH对应 struts spring hibernatestruts ...
- Jquery的AJAX应用详解
案例一:取得服务端当前时间 简单形式:jQuery对象.load(url),返回结果自动添加到jQuery对象代表的标签中间 <body> 当前时间: <span id=" ...
- 初识Google code jam平台
为了熟悉一下code jam的平台,今天简单试了一下,做了一下Qualification Round Africa 2010的三道题目,都是很基础的. A题:给一个数n和一系列数a[],从a[]中找出 ...
- [Angular Tutorial] 4 - Directory and File Organization
在这一步中,我们将不会在我们的应用中添加任何新功能,相反,我们打算退回一步,重构我们的代码库,移动我们的代码和文件,以此来使我们的应用更具易扩展性和可维护性. 在先前的步骤中,我们已经见识到了如何将我 ...
- SVN本地服务器的搭建
本来一直在研究Git,Github,TortoiseGit,最近一个项目要用到SVN,所有开始着手SVN SVN一般和Tortoise配合使用,windows下一般使用VisualSVN版本 一.安装 ...
- Python3基础 set() 集合 创建集合与特点:自动将重复合并掉 不支持索引
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- 七 APPIUM Android 定位方式
1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement element = driver.findElem ...
- FarPoint Spread ChildView子视图
有一种需求场景在很多地方都会用到,就是父子关系(头表和子表的关系),比如订单和订单明细. 做过winform的朋友第spread控件应该比较熟悉,或者了解.他的展示方式就通过一个关联关系就可以了,下面 ...
- 只能输入数字的文本框-php
导读:<inputtype="text"name="textfield"onKeyPress="javascript:alert(event k ...
- java_web学习(2)Servlet
软件编程体系 B\S 系统架构与C\S 系统结构 Web服务器 HTTP 协议:Web 浏览器与 web 服务器的交互所遵循的规则. Web 服务器:Web服务器可以解 ...