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

插播一段题外话
你现在发牢骚,是因为你脑袋里的积淀还不够,
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代码链接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值