《编程珠玑》里面的几道题:
1.变位词
给定一个英语词典,找出所有的变位词集合,例如pots/stop/tops互为变位词。
2.最大子数组和。
输入n个浮点数的向量x,输出是输入向量的任何连续子向量中的最大和。
3.随机取样问题
给定m < n,输出0到n-1范围内m个随机整数有序列表,不允许重复。
4.最长重复子串
给定一个文本文件作为输入,查找其中最长的重复子字符串。
提示
- 同一类型的特征标示,排序
- 分治,实际上存在线性时间扫描算法
- swap(i, randint(i, n-1))
- 后缀数组