迅雷公司的一道笔试题(附解)
On 2010-07-16 12:12:15 By Soli迅雷公司笔试题解
题目要求如下:
求两个绝对路径的共同深度
函数原型:
unsigned get_common_depth(const char *path1,const char *path2)
设计测试用例和函数测试上述函数
函数原型:
bool text_get_common_depth()
下面直接给出答案。
/**
* 迅雷公司面试题解
*
* i) 求两个绝对路径的共同深度。
* 函数原型:unsigned get_common_depth(const char *path1,const char *path2)
*
* ii) 设计测试用例和函数测试上述函数。函数原型:bool text_get_common_depth()
*/
unsigned get_common_depth(const char *path1,const char *path2)
{
unsigned depth = 0;
while(path1[0] != '\0' && path2[0] != '\0')
{
if(*(path1++) != *(path2++))
break;
if(path1[-1] == '/')
depth++;
}
return depth;
}
bool text_get_common_depth()
{
if(get_common_depth("", "") != 0)
return false;
if(get_common_depth("/", "/") != 1)
return false;
if(get_common_depth("/abc", "/") != 1)
return false;
if(get_common_depth("/abc", "/cde") != 1)
return false;
if(get_common_depth("/abc/", "/") != 1)
return false;
if(get_common_depth("/abc/f", "/abc/g") != 2)
return false;
return true;
}
#include <stdio.h>
int main()
{
if(text_get_common_depth())
printf("get_common_depth is working well.\n");
else
printf("get_common_depth is NOT so good.\n");;
return 0;
}
源码在这里下载。
Except where otherwise noted, content on this site is licensed under a
Creative Commons Attribution 4.0 International license
.