> For the complete documentation index, see [llms.txt](https://hao-fu-1.gitbook.io/oj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hao-fu-1.gitbook.io/oj/dynamic_programming_i/string-match/161.-one-edit-distance.md).

# 161. One Edit Distance

https\://leetcode.com/problems/one-edit-distance/

字符串S和T是否相差一个编辑距离。遍历在找到第一个不同的字符S\[i]后，分别检查添，改和删后是否相同。"改"意味着S\[i+1:] == T\[i+1:]，删说明S\[i+1:] == T\[i:]，添对应S\[i:] == T\[i+1]。最后当没有找到i时，检查S和T长度是否相差1，对应添/删一个字符。

```cpp
class Solution {
public:
    bool isOneEditDistance(string s, string t) {
        for (int i = 0; i < min(s.length(), t.length()); ++i) {
            if (s[i] == t[i]) continue;
            return s.substr(i + 1) == t.substr(i) || s.substr(i + 1) == t.substr(i + 1) || s.substr(i) == t.substr(i + 1);
        }
        return abs((int)s.length() - (int)t.length()) == 1;
    }
};

```
