先来一波吐槽:选择题全是不定项选择,考的内容在我看来,“反正我接受唔到咯”。

比如:

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++软件开发岗笔试编程题的更多相关文章

  1. cvte春招测试面试记录

    cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...

  2. 2017百度春招<不等式排列>

    题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊 ...

  3. 2017百度春招<有趣的排序>

    题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #inclu ...

  4. 2017百度春招<度度熊买帽子的问题>

    题目: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 数组中找到第三小的数字  注意边界条件 用STL中的set来 ...

  5. 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)

    对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...

  6. CVTE前端笔试编程题

    这些题目是做完笔试之后,在别的地方找到的,现在附上. 1.(1)这题考察的怎么把参数转换为数组,然后再截取你想要的位数. function C(){ var a_args=Array.prototyp ...

  7. 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing

    本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...

  8. [找工作] 2019秋招|从春招到秋招,Java岗经验总结(收获AT)

    转自(有更多) https://blog.csdn.net/zj15527620802/article/month/2018/10 前言 找工作是一件辛酸而又难忘的历程.经历过焦虑.等待.希望,我们最 ...

  9. 痛吻过YY寻找到真爱的三非渣本春招之路

    写下这篇文章可能就不是大家乐于见闻的面经了,更多是深入一些面试细节. 前言 我猜拿到了BAT等一线互联网公司Offer的小伙伴或者那些老鸟看到这条标题的时候会不屑一顾,认为YY这种级别的公司是属于二线 ...

随机推荐

  1. Sqlserver 时间字段批量增加

    update dt_article_attribute_value set end_time = dateadd(mi,30,start_time) create table tb(dt dateti ...

  2. Python科学计算之Pandas

    Reference: http://mp.weixin.qq.com/s?src=3&timestamp=1474979163&ver=1&signature=wnZn1UtW ...

  3. Js把IE COM数组列表转换成数组

    今天写组件的时候遇到一个问题,就是当我需要对获取到的对象列表进行删减的时候,发现没有合适的方法,比如: //获取图片列表 var imgs = document.getElementsByTagNam ...

  4. 请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库

    转载请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库 1.下载最新的JDBC(2012/3/6) http://www.microsoft.com/downloads/zh-cn/de ...

  5. java 开发之linux 下 tomcat

    tomcat作为java开发的服务器,可以部署在各种系统中. 官方下载地址:http://tomcat.apache.org/download-80.cgi 1. 装tomcat 之前,先要装jdk  ...

  6. PHP之Mysql常用SQL语句示例的深入分析

    1.插入数据insert into表名(列名1,列名2,列名..) values(值1,值2,值...); insert into product(name, price, pic_path) val ...

  7. 浅谈Android的Activity运行流程(生命周期)

    关于Android的Activity运行流程,我们可以写一些程序来直观的查看Activity的运行流程.在这里我们使用Log工具来获取Activity运行日志.假如我们新建一个Android项目,Pr ...

  8. iostat中 %util高 应用延迟高

    经过长时间监控,发现iostat 中的%util居高不下,一直在98%上下,说明带宽占用率极高,遇到了瓶颈. 且读写速度很慢,经过排查,发现是HBA卡出现问题,更换后,用dd if命令测试,磁盘的读写 ...

  9. 游戏开发之UE4添加角色到场景中

    接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 创建一个从Character类继承的类 从基 ...

  10. console用法大全

    对于前端开发者来说,在开发过程中需要监控某些表达式或变量的值的时候,用 debugger 会显得过于笨重,取而代之则是会将值输出到控制台上方便调试.最常用的语句就是console.log(expres ...