今天参加了腾讯的现场招聘会,碰到这个一个题目:
在一篇英文文章中查找指定的人名,人名使用二十六个英文字母(可以是大写或小写)、空格以及两个通配符组成(*、?),通配符“*”表示零个或多个任意字母,通配符“?”表示一个任意字母。
如:“J* Smi??” 可以匹配“John Smith” .
请用C语言实现如下函数:
void scan(const char* pszText, const char* pszName);
注:pszText为整个文章字符,pszName为要求匹配的英文名。请完成些函数实现输出所有匹配的英文名,除了printf外,不能用第三方的库函数等。
当时现场在纸上写了下,也不知道写得对不,感觉没有个好的思路。现请论坛里的大虾们帮忙提供一下好思路方法,若有代码最好,谢谢!
在一篇英文文章中查找指定的人名,人名使用二十六个英文字母(可以是大写或小写)、空格以及两个通配符组成(*、?),通配符“*”表示零个或多个任意字母,通配符“?”表示一个任意字母。
如:“J* Smi??” 可以匹配“John Smith” .
请用C语言实现如下函数:
void scan(const char* pszText, const char* pszName);
注:pszText为整个文章字符,pszName为要求匹配的英文名。请完成些函数实现输出所有匹配的英文名,除了printf外,不能用第三方的库函数等。
当时现场在纸上写了下,也不知道写得对不,感觉没有个好的思路。现请论坛里的大虾们帮忙提供一下好思路方法,若有代码最好,谢谢!
不错的思路~~暂时还没有更好的想法~~