One edit apart

Write codeMedium20 minMeta style

Your task

Given two strings a and b, return True if they are at most one edit apart, where an edit is inserting, deleting, or replacing a single character (zero edits, i.e. equal strings, also counts as True). For example "pale" and "ple" are one delete apart, and "pale" and "bale" are one replace apart, but "pale" and "bake" need two edits. Solve in O(len(a)+len(b)) time without building a full DP table.

Examples

is_one_edit(a: str, b: str) -> bool
Example 1
Inputis_one_edit("pale", "ple")
OutputTrue