用户中心
登录
登陆私有云
Toggle navigation
首页
分类
默认分类
English Novel
技术
机器学习
编程学习
智能家居
碎碎念
人工智能
元宇宙
chatgpt
强化学习
其他页面
whateat
一周Bing美图
书籍搜索网站
Media
OKAI
口红颜色可视化
关于我
关于我
华为2018校招
看不见的城市
发布 | 2018-07-25 |
技术
| 4406 浏览
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
技术
16
机器学习
3
编程学习
2
智能家居
4
碎碎念
9
人工智能
0
元宇宙
2
chatgpt
0
强化学习
0
最新文章
编译 openwrt教程
看不见的城市 - 11-25
数字经济元宇宙之电力元宇宙
看不见的城市 - 05-28
数字经济元宇宙
看不见的城市 - 05-28
智能家居终结篇之元宇宙
看不见的城市 - 12-31
智能家居二之家庭助理
看不见的城市 - 12-28
智能家居一之物联网设备
看不见的城市 - 12-28
家庭机柜 enjoy
看不见的城市 - 12-27
樱花医院暴雨下的爱情
看不见的城市 - 05-31
标签云
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
归档
2023-11
1
2023-05
2
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 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。