题目
思路
- 利用递归去控制
first的长度始终小于等于second的长度。 - 如果长度之差超过1,返回
false - 如果长度恰好相等,那么利用计数器去判断
-
利用递归去控制first的长度始终小于等于second的长度。代码
class Solution {public:bool oneEditAway(string first, string second) {int len_first = first.size(), len_second = second.size();if (len_first > len_second) {return oneEditAway(second, first);}if (len_second - len_first > 1) {return false;}if (len_first == len_second) {int cnt = 0;for (int i = 0; i < len_first; i++) {if (first[i] == second[i]) {continue;} else {cnt += 1;}if (cnt > 1) {return false;}}return true;}if (len_first + 1 == len_second) {int p1 = 0, p2 = 0, cnt = 0;while (p1 < len_first && p2 < len_second) {if (first[p1] != second[p2]) {if (cnt == 0) {p2 += 1;cnt += 1;} else {return false;}} else {p1++;p2++;}}return true;}return false;}};
