44 腾讯面试题 魔方 短信 url

/*
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%以上才叫相似吧。
那就人为规定了字符动态匹配数的标准了,达标的就认为是相似的。
*/ 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页