关于"字符串"的笔试题集锦Ⅰ - 七月算法 - julyedu.com
1、字符串反转实现字符串反转函数。例如,"July"反转后变成"yluJ"。
2、字符的左右移动
给定一个字符串,这个字符串为*号和26个字母的任意组合。现在需要把字符串的*号都移动到最左侧,而把字符串中的字母移动到最右侧并保持相对顺序不变,要求时间复杂度和空间复杂度最小。
3、字符个数的统计
给定一个字符串,写一个函数,查找出字符串中每个字符出现的次数,要求区分大小写,且时间复杂度为O(n)。
4、字符串的匹配
在一篇英文文章中查找指定的人名,人名使用26个英文字母(可以是大写或小写)、空格及两个通配符(*和?)组成。通配符*表示零个或多个任意字母,通配符?表示一个任意字母。例如,"J*Smi??"可以匹配"John Smith"。
5、字符串空格的压缩
给定一个字符串,将其中连续出现的空格压缩为1个后,将其中以空格分隔的每个字符串逆序打印出来。例如,"abc efg hij"的打印结果为"cba gfe jih"。
6、重复字符的压缩
通过键盘输入一串小写字母(a-z)组成的字符串。请编写一个字符串压缩编程序,对字符串中连续出现的重复字母进行压缩,并按要求输出压缩后的字符串。
具体压缩规则是:仅压缩连续重复出现的字符。例如,字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。压缩后输出的格式要求为有重复的字符按"字符重复的次数+字符"输出,无格式的字符原样输出。例如,字符串"xxxyyyyyyz"压缩后输出为"3x6yz",字符串"cccddecc"压缩后输出为"3c2de2c",字符串"adef"压缩后输出为"adef",字符串"pppppppp"压缩后输出为"8p"。
7、第一个只出现一次的字符
在一个字符串中找到第一个只出现一次的字符。例如,输入"abaccdeff",则输出b。
8、删除特定的字符
给定一个原始字符串和模式字符串,要求在原始字符串中删除所有在模式字符串中出现过的字符,对应位置用空格占位。要求性能最优。例如,原始字符串为"They are students.",模式字符串为"aeiou",那么删除之后得到的字符串为"Thy r stdnts."。
9、字符串集合的合并
给定一些字符串的集合,要求将其中交集不为空的集合合并,且合并完成后的集合之间无交集。例如,当给定这些字符串的集合{aaa,bbb,ccc}、{bbb,ddd}、{eee,fff}、{ggg}、{ddd,hhh},结果应输出{aaa,bbb,ccc,ddd,hhh}、{eee,fff}、{ggg}。
提示:这种不相交集合的合并及查询问题,可以考虑使用并查集解决。
10、集合的差集
已知集合A和集合B的元素分别用不含头结点的单向链表存储,求集合A与集合B的差集,并将结果保存在集合A的单向链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},它们的差集为A={10,20,30}。
Read full article from 关于"字符串"的笔试题集锦Ⅰ - 七月算法 - julyedu.com
No comments:
Post a Comment