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这种级别的公司是属于二线 ...
随机推荐
- Visual Studio 2012 开发环境配置+控制台工具+桌面应用程序
一.界面布局视图设置 1.窗口的布局.控制台窗口运行恢复到开发环境的设置方法 也可以保存好设好的个性化设置,导入设置: 2.视图|服务器资源管理器(sever explorer) 可以访问数据源.服务 ...
- 安卓弹出对话框——AlertDialog(二)
在Android中,启动一个对话框有三种方式: 1.定义一个新的activity,并将其主题设置为对话框风格 2.使用AlertDialog类,并且显示它 3.使用 Android的Dialog类的子 ...
- iOS workspace 依次编译多个工程
目的:当我封装一个framework的时候,需要检验当前的改动,但是又不想编译完framework,又要编译测试工程. 步骤: 1. 选择测试工程 2. Edit Scheme 3. 选中Build- ...
- Variation of e.touches, e.targetTouches and e.changedTouches
We have the following lists: touches: A list of information for every finger currently touching the ...
- cpsr当前程序状态寄存器
详解CPSR寄存器(ls_core) (2012-10-11 17:29:47) 转载▼ 标签: arm920t寄存器 cpsr cpu工作原理 分类: 第四章-踏入嵌入式领域之ARM 在介绍CPSR ...
- IE6下完美兼容css3圆角和阴影属性的htc插件PIE.htc
1.(推荐:)css插件PIE.htc,这个才是真正完美兼容css3的圆角和阴影属性在IE6环境下使用的效果,但要注意的是:下面的代码必须写在html文件的head标签内,否则无效(不能从外部引用下面 ...
- LoadRunner
LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找LoadRunner能够对整个企业架构进行测试.通过使用LoadRunne ...
- FMS中实现pull stream
//程序启动时执行 application.onAppStart = function() { this.myNC= new NetConnection(); this.myNC.onStatus = ...
- JSP中使用Taglib
http://blog.163.com/jany_1016/blog/static/4604400620091112114127341/ http://blog.csdn.net/yuebinghao ...
- web前端性能调优(二)
项目经过第一波优化之后APP端已基本已经符合我们的要求了,但是TV端还是反应比较慢,页面加载和渲染都比较慢了一点,我觉的还是有必要在进行一些优化,经过前面的优化,我们的优化空间已经小了一部分,不过还是 ...