Leetcode面试题 01.05. 一次编辑( 双指针)
Question
Ideas
1、Answer( Java ) - 双指针
解法思路:双指针
👍当只有一次编辑时,first 和 second 的前缀和后缀应该是相同的,三种情况都是满足这个规律
Code
/** * @author Listen 1024 * @description 面试题 01.05. 一次编辑(双指针) * 时间复杂度 O(max(n,m)) n 和 m 分别为两字符串长度 * 空间复杂度 O(1) * @date 2022-05-13 20:47 */ class Solution { public boolean oneEditAway(String first, String second) { int n = first.length(), m = second.length(); if (Math.abs(n - m) > 1) { return false; } if (n > m) { return oneEditAway(second, first); } int i = 0, j = 0, cnt = 0; while (i < n && j < m && cnt <= 1) { char c1 = first.charAt(i), c2 = second.charAt(j); if (c1 == c2) { i++; j++; } else { if (n == m) { i++; j++; cnt++; } else { j++; cnt++; } } } return cnt <= 1; } }
下一篇:
【数据结构和算法16】堆排序