现在的位置: 首页 > 综合 > 正文

【面经】Facebook最新面试题-Edit Distance变形

2018年04月12日 ⁄ 综合 ⁄ 共 623字 ⁄ 字号 评论关闭
插播一段题外话

你现在发牢骚,是因为你脑袋里的积淀还不够,

1 你积淀的宽度太窄
2 你涉猎的深度不够
3 如果不是以上,那就是你速度太慢。
当你面对所有一般题型时,你都应该:
10秒内识别出题型,及解题大致方法(dp,dfs,loop,greedy , binary-search,data-structure-alg....)
30秒内确定大致解题思路。包括识别出题目中的变形(需要注意到的点)
1分钟内想清楚算法模板。
5分钟内写出程序。
10分钟内通过程序。
只有严格按照这个过程来严格要求自己,才能够进一步提升。

【面经】Facebook最新面试题-Edit <wbr>Distance变形


Edit Distance 类似的一个题,但要求是:

判断二个字符串的编辑距离是不是小于2.也就是相等或是编辑距离为1.


解答:

 我们可以设置2个指针,分别从2个字符串的起始处开始往后扫描。


 解法原理:如果2个字符串只差最多1的话,有2种情况:

1. 两个字符串相同长度,那肯定是存在replace 一个字符。所以如果遇到不同的字符串,

    两个指针都向前移动,一旦遇到不同的,就认为错误退出即可。

2. 两个字符串长度不等。那肯定是用了add/delete操作才能使2个字符串相同。所以,

    一旦遇到不同的字符,它肯定是插入进去的。可以将长度长的字符串的指针向后移动,

    如果后面出现不等,也是错误退出。


另外,以下代码中也有Edit Distance的递归+记忆矩阵的解法。这样的解法跟DP是一样快的,因为它也可以重复使用已经计算过的结果。
GitHub代码链接

抱歉!评论已关闭.