1 判断一个string, 是否是smashable string
我后来看了,就是这个题目啊.
http://www.geeksforgeeks.org/dynamic-programming-set-32-word-break-problem/
follow up: 如何避免字典是 AAAA, AAAA,AAA, AA 这类的情况。
2 给一个值和权重,random输出,要保证,结果跟权重相同。 比如: (A ,2) (B ,3) (C ,5) 输出很多很多次, 要有20%个A,30%B, %50C
follow up: 如果不是int,是double follow up: 如何优化 (binary search) follow up: 如果输入 有多个(map),然后需要经常切换map,怎么办? //这个问题可以不关心,是因为我的代码写的烂,所以会有这个问题。
数据结构: 树的结构补充。。。
不稳定树。
6天通吃树结构
trie树。
又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计
1、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析
提示 :用trie树统计每个词出现的次数,时间复杂度是O(nle)(le表示单词的平均长度),然后是找出出现最频繁的前10个词。当然,也可以用堆来实现,时间复杂度是O(nlg10)。所以总的时间复杂度,是O(nle)与O(nlg10)中较大的哪一个。
2、寻找热门查询
原题 :搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复读比较高,虽然总数是1千万,但是如果去除重复和,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。
import java.util.ArrayList; import java.utl.HashMap
public class JavaSkillsForInterview.java public class JavaSkillsForInterview public static void main(String[] args) {
**String** String s = "abc"; s.charAt(0); s.length(); s.substring(0, 1); //not include the last bytes s.