华为2011年软件岗位校园招聘机试题---联系人姓名在手机上的数字匹配
来源:互联网 发布:mac相簿批量删除照片 编辑:程序博客网 时间:2024/04/30 03:25
联系人姓名在手机上的数字匹配
问题描述:
针对每个联系人,比如John Smith,我们可以通过如下两种方式进行匹配:
1、 首几个连续字母。以上面的例子来说明:J(5)o(6)h(4);
2、 联系人姓和名的首字母匹配。以上面的例子来说明:J(5)ohn S(7)mith
现在需要实现如下函数,寻找与联系人姓名匹配的数字,并按字符串形式返回,要求如下:
1、 简单起见,只考虑英文联系人的情况,英文大小写都有可能出现,大小写统一对待;
2、 英文联系人的姓和名之间只可能包含空格,没有其他怪异的符号;
3、 联系人的姓名可能只包含一个单词,也可能包含多个单词,每个单词不少于3个字母。
4、 如果联系人姓名只有一个单词,返回首3个字母的数字匹配;
如果联系人姓名包括多个单词,返回每个单词的首字母匹配,单词数超过3个的,只需要输出前三个单词的首字母匹配。
5、 返回类型为字符串形式的数字,比如”John”匹配5、6和4,则返回字符串”564”;”John smith”匹配5和7,则返回字符串”57”
示例:
1输入:”Willam”,输出:”945”;
2输入:”WILLAM”,输出:”945”
3输入:”John Smith”,输出:”57”;
对于边界的处理,特备是最后的几个字母,求各位大神指点一二,让代码显得工整些!批评指正请留言!
问题描述:
针对每个联系人,比如John Smith,我们可以通过如下两种方式进行匹配:
1、 首几个连续字母。以上面的例子来说明:J(5)o(6)h(4);
2、 联系人姓和名的首字母匹配。以上面的例子来说明:J(5)ohn S(7)mith
现在需要实现如下函数,寻找与联系人姓名匹配的数字,并按字符串形式返回,要求如下:
1、 简单起见,只考虑英文联系人的情况,英文大小写都有可能出现,大小写统一对待;
2、 英文联系人的姓和名之间只可能包含空格,没有其他怪异的符号;
3、 联系人的姓名可能只包含一个单词,也可能包含多个单词,每个单词不少于3个字母。
4、 如果联系人姓名只有一个单词,返回首3个字母的数字匹配;
如果联系人姓名包括多个单词,返回每个单词的首字母匹配,单词数超过3个的,只需要输出前三个单词的首字母匹配。
5、 返回类型为字符串形式的数字,比如”John”匹配5、6和4,则返回字符串”564”;”John smith”匹配5和7,则返回字符串”57”
示例:
1输入:”Willam”,输出:”945”;
2输入:”WILLAM”,输出:”945”
3输入:”John Smith”,输出:”57”;
4输入:”John Smith Green Carlos”,输出:”574”;
这个题目主要考察里如下几个方面:
1.使用c++的cin函数操作是会有一定的限制,因为cin函数默认是遇到空格或者是回车结束接收字符的;
2.对于strcpy 和 strncpy 以及memcpy的使用;
3.就是注意:手机键盘的结构布局,看的时候要认真;
下面是C语言的代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char name[100] = {'\0'};gets(name);int len = strlen(name);if(len < 3)return 0;strlwr(name);char id[4] = {'\0'};memcpy(id,name,3);int count = 0,i=0;for(i=0;i<len;i++)if(name[i] == ' ')if(++count < 3)id[count] = name[i+1];elsebreak;if(count == 1)id[2] = '\0';len = strlen(id);printf("%s\n",id);for(i=0;i<len;i++){int b = (id[i]-'a')/3;if(b<6) b+=2;switch(b){case 6:if(id[i] <= 's')b = 7;elseb = 8;break;case 7:if(id[i] == 'u')b = 8;elseb = 9;case 8:b = 9;}printf("%d",b);}printf("\n");return 0;}
对于边界的处理,特备是最后的几个字母,求各位大神指点一二,让代码显得工整些!批评指正请留言!
2 0
- 华为2011年软件岗位校园招聘机试题---联系人姓名在手机上的数字匹配
- 上海合肥地区华为2015年校园招聘研发类岗位机试题:
- 华为2014年校园招聘的几个主要岗位需求
- 华为校园招聘机试题
- 华为2014校园招聘的机试题目
- 华为2014校园招聘的机试题目
- 华为2014校园招聘的机试题目--字符串压缩
- 华为2015年校园招聘机试题(2)
- 华为2014年校园招聘机试题(1)
- 华为2014年校园招聘机试题(2)
- (0903)2013华为校园招聘机试题
- 2013华为校园招聘机试题
- 2013华为校园招聘机试题1
- 2014届华为校园招聘机试题
- 2013届华为校园招聘机试题
- 2012届华为校园招聘机试题
- 2013届华为校园招聘机试题
- 2014届华为校园招聘机试题
- Microsoft CryptoAPI加密技术(二)
- 获取javaweb项目所在目录的路径
- NO7.java学习笔记【面向对象、栈内存、堆内存、构造函数、this、super、继承、覆盖、对象实例化、final】
- 布尔html(3)
- wordpress 忘记密码怎么办?
- 华为2011年软件岗位校园招聘机试题---联系人姓名在手机上的数字匹配
- ZOJ-2312
- 寒假第二天--线性表-- 数据结构实验之链表二:逆序建立链表
- 第一个AJAX小程序
- 寒假第二天--线性表--数据结构实验之链表一:顺序建立链表
- 如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
- Python介绍及视频教程
- Android ART运行时无缝替换Dalvik虚拟机的过程分析
- 11111 - Generalized Matrioshkas