44.腾讯面试题

44.腾讯面试题:
1.
设计一个魔方(六面)的程序。

应该不是让求魔方的解法,求魔方解法也是有公式的,不同的情况按分支套公式就行。

依题意可能是让实现一个模拟魔方的程序。不讨论UI,只讨论魔方算法的实现。

六个3*3矩阵,各矩阵初值内部相同两两间互不相同,对应每个面。

魔方转动只有为两种:正对该面时顺时针转动或逆时针转动。

先声明各面排列,比如132456。因为魔方的主要操作是对某面转动,所以为了尽量的快应该直接使用分支判断。写六个分支对应六个面,每面再写两个分支(顺时针转、逆时针转)。每种转动,自己和相邻面的矩阵数据如何交换。只对矩阵进行更新,再把更新后的矩阵返回到UI,即实现了魔方的转换。

2.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。
请用5分钟时间,找出重复出现最多的前10条。

遍历同时用哈希表计数,每更新一次哈希表计数,试着更新大小为10的小根堆,求数量最大的10条。

3.收藏了1万条url,现在给你一条url,如何找出相似的url。(面试官不解释何为相似)

什么叫相似?是指属于同一服务,还是指URL字串上大都相同呢?

先考虑前者,如果一个URL是另一个URL的前缀,是不是应该叫相似?或者两个URL的前面的目录相同,是不是也应该叫相似?所以可以先左对齐求前段地址和部分目录的字符串是否一致,如果一致则认为相似。

再考虑后者,如果不满足前面的结果。考虑相似是指匹配字符较多。那就用动态规划求字符对齐匹配数最大的。那么较多是多少呢?这个标准可以人为取,我想怎么也得80%以上才叫相似吧。那就人为规定了字符动态匹配数的标准了,达标的就认为是相似的。

http://blog.csdn.net/lzc52151/article/details/6221852

阅读更多
个人分类: 算法
上一篇43.递归和非递归俩种方法实现二叉树的前序遍历。
下一篇kmp
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭