本文共 1346 字,大约阅读时间需要 4 分钟。
点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏。H3C 笔试编程题。
微信搜索:编程笔记本
微信搜索:编程笔记本 微信搜索:编程笔记本题目描述:
输入一个字符串,判断这个字符串能否匹配星期一到星期日中的某一个或多个英文单词,输入的串不区分大小写。
示例:
m
,只有 Mon
中含有 m
。 输出:Mon
es
输出:Multi
,Tues
和 Wednes
中均含有 es
。ab
输出:NotFound
,无法匹配字符串。参考代码:
string dateMatch(string s){ vectordate = { "mon", "tues", "wednes", "thurs", "fri", "satur", "sun"}; int count = 0; // 匹配的日期数 string res; string ans; transform(s.begin(), s.end(), s.begin(), ::tolower); // 将待匹配的串转为小写 for (int i = 0; i < 7; ++i) { if (date[i].find(s) != string::npos) { ++count; res += date[i]; } if (count >= 2) { return "Multi"; } } if (count != 0) { res[0] = res[0] - 'a' + 'A'; // 将匹配的星期首字母大写 return res; } return "NotFound";}
微信搜索:编程笔记本
微信搜索:编程笔记本 微信搜索:编程笔记本题目描述:
求出给定整数所有因子的中间数。
示例:
9
输出:3
,因子为 1 3 9
12
输出:4
,因子为 1 2 3 4 6 12
参考代码:
1.求出所有因子存放在一个数组中,返回数组中间元素即可。(不推荐)
int midFactor(int n){ vector factors; for (int i = 1; i <= n; ++i) { if (n % i == 0) { factors.push_back(i); } } return factors[factors.size() / 2];}
2.直接求出平方根的值,从平方根开始搜索,第一个因子便是所要求的值。(推荐)
int midFactor(int n){ int sqrt_n = sqrt(n); if (n == sqrt_n * sqrt_n) { return sqrt_n; } for (int i = sqrt_n + 1; i <= n; ++i) { if (n % i == 0) { return i; } }}
微信搜索:编程笔记本
微信搜索:编程笔记本 微信搜索:编程笔记本