首页 > 试题广场 >

编辑距离为一

[编程题]编辑距离为一
  • 热度指数:1177 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个字符串 s 和 t ,如果两个字符串的编辑距离是 1 则输出 true 否则输出 false。
字符串 s 和字符串 t 的编辑距离是 1 时有三种情形。
从 s 中删除一个字符得到 t
往 s 中添加一个字符得到 t
在 s 中修改任意一个字符得到 t

数据范围:两个字符串的长度满足 ,字符串中仅包含小写英文字母
示例1

输入

"nowcoder","nawcoder"

输出

true
示例2

输入

"nowcoder","nawcader"

输出

false
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @param t string字符串
 * @return bool布尔型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
bool editdistance(char* s, char* t ) {
    // write code here
    if ((s == NULL) || (t == NULL)) {
        return false;
    }

    while ((*s != '\0') || (*t != '\0')) {
        if (s[0] != t[0]) {
            if ((strcmp(s + 1, t + 1) == 0) ||
                    (strcmp(s + 1, t) == 0) ||
                    (strcmp(s, t + 1) == 0)) {
                return true;
            } else {
                return false;
            }
        }
        s++;
        t++;
    }
    return false;
}
发表于 2022-07-10 13:25:03 回复(0)