/*
44.腾讯面试题(算法):
1.设计一个魔方(六面)的程序。
2.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。
请用 5 分钟时间,找出重复出现最多的前 10 条。
3.收藏了 1 万条 url,现在给你一条 url,如何找出相似的 url。(面试官不解释何为相似)
*/
/*
44.腾讯面试题:
1.设计一个魔方(六面)的程序。
magicCube对象:
6个3*3矩阵,
1保存当前的状态
2很容易的变换:顺时针、逆时针;3个部分,左中右
3判断最终的状态是否达到
4初始化
5输出当前的状态
*/
public class magicCube
{
// 6 faces, 9 chips each face
private byte chips[54];
static final int X = 0;
static final int Y = 1;
static final int Z = 2;
void transform(int direction, int level)
{
switch direction:
{
X : { transformX(level); break; }
Y : { transformY(level); break; }
Z : { transformZ(level); break; }
default: throw new RuntimeException(“what direction?”);
}
}
void transformX(int level) { … }
}
/*
2.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。
请用5分钟时间,找出重复出现最多的前10条。
10000条 ,最大140字符,1400 000,可以存储
用hash表存储出现的次数
遍历同时用哈希表计数,每更新一次哈希表计数,
试着更新大小为10的小根堆,求数量最大的10条。
*/
/*
3.收藏了1万条 url,现在给你一条url,如何找出相似的url。
(面试官不解释何为相似)
什么叫相似?是指属于同一服务,还是指URL字串上大都相同呢?
先考虑前者,如果一个URL是另一个URL的前缀,是不是应该叫相似?
或者两个URL的前面的目录相同,是不是也应该叫相似?
所以可以先左对齐求前段地址和部分目录的字符串是否一致,
如果一致则认为相似。字符串前缀用字典树?
再考虑后者,如果不满足前面的结果。考虑相似是指匹配字符较多。
那就用动态规划求字符对齐匹配数最大的。那么较多是多少呢?
这个标准可以人为取,我想怎么也得80%以上才叫相似吧。
那就人为规定了字符动态匹配数的标准了,达标的就认为是相似的。
*/
44 腾讯面试题 魔方 短信 url
最新推荐文章于 2021-06-09 11:49:32 发布