用户中心
登录
登陆私有云
Toggle navigation
首页
分类
默认分类
English Novel
技术
机器学习
编程学习
智能家居
碎碎念
其他页面
whateat
一周Bing美图
书籍搜索网站
Media
OKAI
口红颜色可视化
关于我
关于我
华为2018校招
看不见的城市
发布 | 2018-07-25 |
技术
| 3753 浏览
2017年09月07日 11:50:01 题目1 题目描述 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串; 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串“1234”的长度就小于数字串“1359055”,如果没有数字,则返回空字符串(“”)而不是NULL!(说明:不需要考虑负数) 输入描述: 字符串 输出描述: 连续数字串&在所有数字串最长的长度 示例1 输入 abcd12345ed125ss123058789 输出 123058789 9 #include
#include
#include
#include
bool legal( char ch ) { return isdigit(ch); } bool illegal( char ch ) { return !legal(ch); } void resolve_line( std::string& line, std::string& pat ); int main(void){ std::string line; while(std::cin >> line){ std::string ans = ""; resolve_line(line, ans); if(ans != ""){ std::cout << ans << std::endl; std::cout << ans.size() << std::endl ; } else std::cout << 0 << std::endl; } return 0; } void resolve_line( std::string& line, std::string& pat ){ typedef std::string::iterator Iter; Iter b = line.begin(); Iter e = line.end(); int max = 0; while(b!=e){ b = find_if( b, e, legal ); if( b < e ){ Iter after = find_if(b, e, illegal); std::string tmp(b, after); if(tmp.size() >= max){ max = tmp.size(); pat = tmp; } b = after; } } } 题目2 题目描述 100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少? 例如输入M=3时,输出为: “58,91” ,输入M=4时,输出为: “34,45,97”。 输入描述: 函数原型: void NumberOffGame(int m, char * output); 输入的m,m为大于1且小于100的整数。 输出描述: 输出output,其中output已经分配足够的内存空间,无需单独分配; 如果m输入小于等于1,则输出“ERROR!”; 如果m输入大于等于100,则输出“ERROR!”; 否则按照编号从小到大的顺序,以“,”分割输出编号字符串,输出的字符串中标点符号均为半角字符。 示例1 输入 3 输出 58,91 #include
#include
void solve(int n, int m) { std::list
nums; for(int i = 1; i <= n; ++i){ nums.push_back(i); } typedef std::list
::iterator iter; iter it = nums.begin(); while(nums.size() >= m){ // move forward m-1 step for(int k = 0; k < m-1; ++k){ ++it; if( it == nums.end() ) it = nums.begin(); } // delete the mth one it = nums.erase(it); if( it == nums.end() ) it = nums.begin(); } iter b = nums.begin(); iter e = nums.end(); while(b != e){ if(b == nums.begin()) std::cout << *b; else std::cout << "," << *b; b++; } std::cout << std::endl; } int main(){ int m; while(std::cin >> m){ if(m <= 1 || m >= 100) std::cout << "ERROR!" << std::endl; else{ solve(100, m); } } } https://blog.csdn.net/xs1997/article/details/53888408 题目3 题目描述 酒馆里有m个龙头可供顾客们接啤酒,每个龙头每秒的出酒量相等,都是1。现有n名顾客准备接酒,他们初始的接酒顺序已经确定。将这些顾客按接酒顺序从1到n编号,i号顾客的接酒量为w_i。接酒开始时,1到m号顾客各占一个酒龙头,并同时打开龙头接酒。当其中某个顾客j完成其接酒量要求wj后,下一名排队等候接酒的顾客k马上接替j顾客的位置开始接酒。这个换人的过程是瞬间完成的,且没有任何酒的浪费。即j顾客第x秒结束时完成接酒,则k顾客第x+1秒立刻开始接酒。若当前接酒人数n’不足m,则只有n’个龙头供酒,其它m-n’个龙头关闭。 现在给出n名顾客的接酒量,按照上述规则,问所有顾客都接完酒需要多少秒? 输入描述: 输入包括两行,第一行为以空格分割的两个数n和m,分别表示接酒的人数和酒龙头个数,均为正整数。 第二行n个整数w_i(1 <= w_i <= 100)表示每个顾客接酒量 输出描述: 如果输入合法输出酒所需总时间(秒)。 注意:最终交付的函数代码中不要向控制台打印输出任何无关信息。 示例1 输入 5 3 4 4 1 2 1 输出 4 #include
#include
int main(void){ int n, m; while(std::cin >> n >> m){ std::vector
arr(n); for(int i = 0; i < n; ++i){ std::cin >> arr[i]; } int ans = 0; while(1){ int flag = 0; int num = 0; for(int i = 0; i < n; ++i){ if(arr[i] > 0){ flag = 1; arr[i]--; num++; if(num == m) break; } } if(flag) ++ans; else break; } std::cout << ans << std::endl; } return 0; } 总结 整体来说,华为的题目算是简单的。给的时间很充分,但是还是暴露出一些问题。 尤其是,做题的时候,一定不要着急。把题面都看仔细了,第二题我过了好久,才通过全部case.原因也只是因为,把输出的ERROR!看成了ERROR,因为后面有一个!没有看见。这个一定要注意,还有就是对于边界数据的考虑要重视!总之,把题目看仔细了,把题目分析清楚了,把各种情况都考虑到了。再下手! 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kang_TJU/article/details/77879556
标签
没有标签
© 著作权归作者所有
本文由 豆末 创作,采用
知识共享署名4.0
国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
微信扫一扫查看
关闭
吐槽一下吧
取消回复
*选项为必填
分类
默认分类
3
English Novel
3
技术
15
机器学习
3
编程学习
2
智能家居
4
碎碎念
9
最新文章
智能家居终结篇之元宇宙
看不见的城市 - 12-31
智能家居二之家庭助理
看不见的城市 - 12-28
智能家居一之物联网设备
看不见的城市 - 12-28
家庭机柜 enjoy
看不见的城市 - 12-27
樱花医院暴雨下的爱情
看不见的城市 - 05-31
Kubernetes 最佳实践:处理容...
看不见的城市 - 04-13
Ubuntu缩小磁盘分区大小或扩容其他分区
看不见的城市 - 05-23
我只想活到50多岁。
鱼塘里的废柴少女 - 03-11
标签云
embedding python
最近回复
加啦加啦 我之前更新了程序
木月 - 11-24
求最新的ndr py版本 跪求
魔法少女刘能 - 11-10
Incredible points. ...
cialis - 04-30
Good way of describ...
cialis for sale in usa - 03-25
Our lives are not o...
鱼塘里的废柴少女 - 11-09
小公司倒是去了很多家
芭比 - 08-07
GG
归档
2021-12
4
2020-05
1
2020-04
1
2019-05
1
2019-03
2
2018-11
3
2018-10
3
2018-09
1
2018-07
3
2018-05
1
2018-04
2
2018-03
15
© 著作权归作者所有
本文由 豆末 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。