二进制串中连续出现的0或1的最大次数
来源:互联网 发布:做彩页用什么软件 编辑:程序博客网 时间:2024/04/27 13:26
今天下午到Worksapplicatin去面试了,本来是明天上午的面试,因为和华为的机试时间冲突了,就打电话给负责人希望另选时间,谁知他让我马上就过去(面试的地方就在学校旁边的酒店里),只好匆匆忙忙拿着简历赶到了面试的地方。这家公司是一家外企,面试过程都是采用英文交流的。这是读研究生以来第一次参加正式的面试,很紧张,也很匆忙。面试过程大概持续了40分钟,面试官是一个日本人,应该属于技术中层管理者一类的角色。面试过程也很简单,没有想象中的那么严肃,一个简单的英文自我介绍,然后就是现场编程(限时30分钟)。面试结果基本是挂掉了,因为编程题没能最后做出来,平时训练的少,也是自己能力不足吧。
其实这次实习生的面试主要是去积攒经验的,下半年就要开始找工作了,再过一年多就要彻底和学生时代说再见了,马上要从学生转变为职场新人。面试不是很顺利,只希望通过这样一次次的失败认清自己的不足,有针对性的去努力提升自己,让自己距离一个理想中的offer越来越近。总结一下这次面试,自己的不足主要有以下几个方面,1. 和面试官的交流不够,表达能力和英语口语能力都要加强。面试的时候尽量放轻松自然,面试官没有那么可拍,表现得得体自然有礼貌最重要。2. 现场写代码的能力。 这是最重要的地方,还是基础不够扎实,数据结构和算法这些东西落下很久了,如果有志于成为一个码农,那就多写代码吧,没有捷径可以走。熟能生巧,自己还是平时写代码写的太少了,只有写过足够多的代码,才能对问题有深刻的认识,对代码驾轻就熟。否则,一切停留在表面,都是扯淡的。 3. 仪表,精气神方面要注意。 虽然说程序猿面试不一定要穿正装,但是衣着要得体,特别是精气神要好,说话音量要控制好。要给人一种经历充沛的感觉,这样别人才会有兴趣和你聊下去。 其他的也没什么好说的,自己能力不足,也怨不得别人,成功没有捷径可走,coding,coding再coding! 现在把自己面试的题目贴上来,题目真心不是很难,代码量也不大,就是自己平时代码写少了,练得不够。
Worksapplication面试题(三个里面做一个,面试官指定,我的是第二个)。题目是英文的,中文大意是:有一个二进制的字符串,要求输出连续出现0或1次数最多的子串。自己回来总结查了一些资料后,代码如下:
#include <iostream>using namespace std;int longestSeq(char* seq, int n, int &longest){ int count_0 = 0,count_1 = 0; int max_0 = 0, max_1 = 0; for(int i = 0; i < n; ++i) { if(seq[i] == '0') { count_0++; count_1 = 0; } else if(seq[i] == '1') { count_1++; count_0 = 0; } if(count_0 >= max_0) max_0 = count_0; if(count_1 >= max_1) max_1 = count_1; } //the continue occurs longest seq is '1' if(max_1 > max_0) { longest = max_1; return 1; } //the continue occurs longest seq is '0' else if(max_1 < max_0) { longest = max_0; return -1; } // both '0' and '1' have the longest continue occur times else { longest = max_0; return 0; }}int main(){ char seq[] = "111000010111110"; int longestSequence = 0; int bin = longestSeq(seq,15,longestSequence); if(bin == 1) { for(int i = 0; i < longestSequence; ++i) cout << 1; } else if(bin == -1) { for(int i = 0; i < longestSequence; ++i) cout << 0; } else { for(int i = 0; i < longestSequence; ++i) cout << 1; cout << " "; for(int i = 0; i < longestSequence; ++i) cout << 0; } return 0;}
其实自己当时思路不清晰,东想西想,主要是积累太少了。函数的实现是最重要的。下面是不用C风格字符串,用C++的string字符串类的实现:
#include <iostream>#include <string>using namespace std;int longestStr(const string& binSeq, int &longest){ int count_0 = 0, count_1 = 0; int max_0 = 0,max_1 = 0; for(int i = 0; i < binSeq.length(); ++i) { if(binSeq[i] == '0') { count_0++; count_1 = 0; } else if(binSeq[i] == '1') { count_1++; count_0 = 0; } if(max_0 < count_0) max_0 = count_0; if(max_1 < count_1) max_1 = count_1; } //'1' has the longest continue occur times if(max_1 > max_0) { longest = max_1; return 1; } //'0' has the longest continue occur times else if(max_1 < max_0) { longest = max_0; return -1; } //both '0' and '1' have the longest continue occur times else { longest = max_0; return 0; }}int main(){ string str = "11100001111010"; int longest; int bin = longestStr(str,longest); if(bin == 1) { for(int i = 0; i < longest; ++i) cout << 1; } else if(bin == -1) { for(int i = 0; i < longest; ++i) cout << 0; } else { for(int i = 0; i < longest; ++i) cout << 0; cout <<" "; for(int i = 0; i < longest; ++i) cout << 1; } return 0;}
任重而道远啊,现在是实习招聘,抓紧时间锻炼,为早日拿到offer而努力吧,既然选择了程序猿,就不停的coding吧!
- 二进制串中连续出现的0或1的最大次数
- 题目——求一个二进制串中连续的1或连续的0出现的最大次数
- 全国软件设计大赛--求出一个二进制串中连续的1或连续的0出现的最大次数
- 统计一个二进制字符串连续出现0或者连续出现1的最大次数
- 最大连续出现的次数
- python 判断连续是0 或1 的最大次数
- 找出01字符串中0和1连续出现的最大次数
- 找出01字符串中0和1连续出现的最大次数
- 二进制形式中1出现的次数
- 字符串中连续子串出现次数统计,获取连续出现次数最多的子串
- c语言判断连续是0 或1 的最大次数
- 找出字符串中连续出现次数最多的子串
- 字符串中连续出现次数最多的子串
- 求字符串中连续出现次数最多的子串
- 找出字符串中连续出现次数最多的子串
- 寻找字符串中连续出现次数最多的子串
- 求字符串中连续出现次数最多的子串
- 找出字符串中连续出现次数最多的子串
- Android 6.0 运行时权限处理
- 状态模式
- 第五周项目一-三角形类雏形(4)
- 复杂一点的 listview + header实现 上拉下拉刷新就行了
- WebLogic发布点Activate Changes时候出错:java.lang.LinkageError: loader constraint violation: loader
- 二进制串中连续出现的0或1的最大次数
- 猜数字游戏
- 项目15-游戏中的角色类(2)
- 第三周 项目4(4)委派任务
- 实验二 白盒测试 White box Testing
- poj1936(公式+二分)
- MySQL创建用户与授权方法
- Java对象大小内幕浅析
- 轨迹聚类(一):分段及归组框架(Trajectory Clustering:A Partition-and-Group Framework))