摘要:
腾讯的一道面试题: 在一篇英文文章中查找指定的人名,人名使用二十六个英文字母(可以是大写或小写)、空格以及两个通配符组成(*、?),通配符“*”表示零个或多个任意字母,通配符“?”表示一个任意字母。 如:“J* Smi??” 可以匹配“John Smith” . 请用C语言实现如下函数: void 阅读全文
摘要:
统计字符串中每个字符出现的次数 题目要求:写出一个函数,查找出每个字符出现的次数,主要区分大小写,要求时间复杂度是O(n)。 分析:用256个元素的数组count,来分别记录ASCII码为0~255的字符的个数,初始化为0,遍历每个字符,对该字符对应的数组元素的值加1。最后count[ i ]中存储 阅读全文
摘要:
字符的左右移动给定一个字符串,这个字符串为*号和26个字母的任意组合。现在需要把字符串的*号都移动到最左侧,而把字符串中的字母移动到最右侧并保持相对顺序不变,要求时间复杂度和空间复杂度最小。 分析:用star表示尾部的第一个*的位置, 然后从star出发,用指针letter指向star之前的第一个字 阅读全文