可以比较数字的strnumcmp函数——百度笔试归来(应聘职位:商务搜索部_信息系统/web研发工程师)
来源:互联网 发布:风的季节 知乎 编辑:程序博客网 时间:2024/05/19 00:55
百度的笔试题可真不是盖得,我应聘的职位是商务搜索部_信息系统/web研发工程师。全部是简答题和编程题,题量不大,时间为两个小时。其中有这样一道编程题,题目如下:
实现int strnumcmp(char * str1,char * str2);函数,当两个字符串的比较部分不包含数字时,函数功能和strcmp一样。否则比较字符串中的数字大小。例如:
"abc32"<"abc6";
"abcd">"abc9";
"abcd"<"abce";
算法思想:除去两个字符串前面相同的部分,然后,如果两个字符串的首字符都是数字则比较两个数字字符串的大小,否则实现strcmp函数的功能。
下面是我用C语言实现的程序代码,已经在visual C++ 6.0上运行通过了,拿出来与大家分享。虽然去不了百度,但还是积累一点经验,毕竟前方的路还很长!
#include <stdio.h>
#include <string.h>
/*判断一个字符是否是数字字符,即'0'到'9'之间的字符,如果是数字字符返回1,否则返回0*/
int isNum(char c)
{
if(c>='0'&&c<='9')
return 1;
return 0;
}
/*智能字符串判断函数——str1大于str2则返回1,小于返回-1,等于返回0*/
int strnumcmp(char * str1,char * str2)
{
/*除去两个字符串前面相同的部分*/
while(*str1==*str2)
{
if(*str1=='/0'&&*str2=='/0')
return 0;
str1++;
str2++;
}
/*若字符串比较的部分包含数字*/
if(*str1<='9'&&*str1>='1'&&'1'<=*str2&&*str2<='9')
{
int flag=*str1>*str2?1:-1;
while(1)
{
str1++;
str2++;
/*str1是数字,str2不是数字。*/
if(isNum(*str1)==1&&isNum(*str2)==0)
return 1;
/*str2是数字,str1不是数字。*/
else if(isNum(*str2)==1&&isNum(*str1)==0)
return -1;
/*str1和str2都不是数字*/
else if(isNum(*str1)==0&&isNum(*str2)==0)
return flag;
}
}
/*若字符串比较的部分不包含数字*/
return *str1>*str2?1:-1;
}
void main()
{
char * str1="abc212";
char * str2="abc122";
int result=strnumcmp(str1,str2);
if(result==0)
printf("字符串相等。/n");
else if(result>0)
printf("str1大于str2。/n");
else
printf("str1小于str2。/n");
}
- 可以比较数字的strnumcmp函数——百度笔试归来(应聘职位:商务搜索部_信息系统/web研发工程师)
- 分享一道Kingsoft的笔试题——Kingsoft笔试归来(应聘职位:服务器端开发工程师)
- 百度2012用户研究工程师职位的笔试…
- 百度2015校园招聘笔试题——研发工程师(西安站)
- 百度2015校园招聘笔试题——研发工程师(西安站)
- 百度2012研发工程师笔试
- 百度商务搜索研发(C++)面试(2012.05)
- 笔试题,百度流程信息管理部Web前端实习研发工程师
- 2014百度校招开发测试工程师笔试题(时间_2013-9-28__地点_深圳__职位_开发测试工程师)
- 面试题:你有能力胜任应聘的职位吗?_面试笔试
- 百度工程师笔试题(web开发和新产品搜索方向)
- 百度校园招聘-研发工程师笔试题(济南站)
- 百度2016研发工程师笔试题(六)
- 百度2016研发工程师笔试题(四)
- 百度2016研发工程师笔试题(一)+详解
- 百度2016研发工程师笔试题(六)
- 数字游戏----网易2016研发工程师笔试题(二)
- 牛客网(阿里巴巴2010搜索研发C++工程师笔试卷)
- 如何复制一个函数
- 这篇文章很受启发,转载下---剖析SQL Server执行计划
- response.setHeader
- jquery扩展之jQuery.fn.extend
- Makefile 详解 2
- 可以比较数字的strnumcmp函数——百度笔试归来(应聘职位:商务搜索部_信息系统/web研发工程师)
- 基于聚芯SoC北斗时钟的程序流程2(1)-Syslib.c中的SysInit初始化部分
- shell判断操作符-------shell学习(11)
- 转:VC工程打包步骤:
- xlst 实现xml的解析
- find命令详解
- C++字符串完全指引之二 —— 字符串封装类
- (转)u-boot-2009.08在2440上的移植详解(一)
- 发现新大陆