万知网

面试题 01.05. 一次编辑(面试题汇总)

时间:2023-06-28

面试题 01.05. 一次编辑

面试题 01.05. 一次编辑

字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。

示例 1: 输入: first = “pale” second = “ple” 输出: True

示例 2: 输入: first = “pales” second = “pal” 输出: False


Java代码1:

public boolean oneEditAway(String a, String b) {    int n = a.length();    int m = b.length();    if (Math.abs(n - m) > 1) return false;    if (n > m) return oneEditAway(b, a);  // 确保长度a <= b    int i = 0, j = 0, cnt = 0;    while (i < n && j < m && cnt <= 1) {        if (a.charAt(i) == b.charAt(j)) {            i++; j++;        } else {            if (n == m) {                i++; j++; cnt++;            } else {                j++; cnt++;            }        }    }    return cnt <= 1;}

热文推荐