iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++怎么判断编辑距离是否为1
  • 593
分享到

C++怎么判断编辑距离是否为1

2023-06-20 18:06:36 593人浏览 安东尼
摘要

这篇文章主要讲解了“c++怎么判断编辑距离是否为1”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么判断编辑距离是否为1”吧!编辑距离这道题是之前那道 Edit Distan

这篇文章主要讲解了“c++怎么判断编辑距离是否为1”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么判断编辑距离是否为1”吧!

编辑距离

这道题是之前那道 Edit Distance 的拓展,然而这道题并没有那道题难,这道题只让我们判断两个字符串的编辑距离是否为1,那么只需分下列三种情况来考虑就行了:

两个字符串的长度之差大于1,直接返回False。

两个字符串的长度之差等于1,长的那个字符串去掉一个字符,剩下的应该和短的字符串相同。

两个字符串的长度之差等于0,两个字符串对应位置的字符只能有一处不同。

分析清楚了所有的情况,代码就很好写了,参见如下:

解法一:

class Solution {public:    bool isOneEditDistance(string s, string t) {        if (s.size() < t.size()) swap(s, t);        int m = s.size(), n = t.size(), diff = m - n;        if (diff >= 2) return false;        else if (diff == 1) {            for (int i = 0; i < n; ++i) {                if (s[i] != t[i]) {                    return s.substr(i + 1) == t.substr(i);                }            }            return true;        } else {            int cnt = 0;            for (int i = 0; i < m; ++i) {                if (s[i] != t[i]) ++cnt;            }            return cnt == 1;        }    }};

我们实际上可以让代码写的更加简洁,只需要对比两个字符串对应位置上的字符,如果遇到不同的时候,这时看两个字符串的长度关系,如果相等,则比较当前位置后的字串是否相同,如果s的长度大,那么比较s的下一个位置开始的子串,和t的当前位置开始的子串是否相同,反之如果t的长度大,则比较t的下一个位置开始的子串,和s的当前位置开始的子串是否相同。如果循环结束,都没有找到不同的字符,那么此时看两个字符串的长度是否相差1,参见代码如下:

解法二:

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

感谢各位的阅读,以上就是“C++怎么判断编辑距离是否为1”的内容了,经过本文的学习后,相信大家对C++怎么判断编辑距离是否为1这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C++怎么判断编辑距离是否为1

本文链接: https://www.lsjlt.com/news/299191.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++怎么判断编辑距离是否为1
    这篇文章主要讲解了“C++怎么判断编辑距离是否为1”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么判断编辑距离是否为1”吧!编辑距离这道题是之前那道 Edit Distan...
    99+
    2023-06-20
  • C++怎么编辑距离
    这篇文章主要介绍“C++怎么编辑距离”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++怎么编辑距离”文章能帮助大家解决问题。编辑距离Example 1:Input: word1 = "h...
    99+
    2023-06-19
  • 怎么用C++实现编辑距离
    这篇文章主要讲解了“怎么用C++实现编辑距离”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C++实现编辑距离”吧!Edit Distance 编辑距离Given two words&n...
    99+
    2023-06-20
  • 怎么判断是否为C语言常量
    判断一个值是否为C语言常量,需要注意以下几点: 常量在C语言中是不可修改的,因此如果一个值在程序中不会被改变,则可以认为是常量。...
    99+
    2024-04-02
  • c语言怎么判断是否为回文串
    判断一个字符串是否为回文串可以通过以下步骤实现: 定义两个指针,分别指向字符串的开头和结尾; 依次比较两个指针指向的字符是否相等,...
    99+
    2024-03-02
    c语言
  • javascript怎么判断是否为整数
    小编给大家分享一下javascript怎么判断是否为整数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript判断是否为整数的方法:1、使用取余运算符判断;2、使用Math.round、Math.ceil、Ma...
    99+
    2023-06-14
  • 怎么判断是否为jquery对象
    今天小编给大家分享一下怎么判断是否为jquery对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • Java中怎么判断是否为空
    这篇文章给大家介绍Java中怎么判断是否为空,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerExcepti...
    99+
    2023-06-16
  • java怎么判断bigdecimal是否为空
    在Java中,判断BigDecimal是否为空可以通过以下两种方法:1. 使用compareTo()方法:将BigDecimal对象...
    99+
    2023-09-14
    java
  • sqlserver怎么判断是否为数字
    在SQL Server中,可以使用ISNUMERIC函数来判断一个值是否为数字。ISNUMERIC函数返回一个值,指示表达式是否可转...
    99+
    2024-04-09
    sqlserver
  • c语言怎么判断年份是否为闰年
    判断一个年份是否为闰年的条件是: 能被4整除但不能被100整除的年份是闰年; 能被400整除的年份也是闰年。 下面是一个用C语言...
    99+
    2024-03-01
    c语言
  • c语言怎么判断字符串是否为空
    在C语言中,可以使用以下方法来判断一个字符串是否为空:1. 使用if语句判断字符串的第一个字符是否为'\0'(即字符串结束符)。如果...
    99+
    2023-10-08
    c语言
  • Java怎么判断List是否为空
    本篇内容主要讲解“Java怎么判断List是否为空”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么判断List是否为空”吧!一个问题我们有一个函数,返回的是一个Panel Listpu...
    99+
    2023-06-29
  • java怎么判断integer是否为空
    这篇文章主要介绍“java怎么判断integer是否为空”,在日常操作中,相信很多人在java怎么判断integer是否为空问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么判断integer是否为空...
    99+
    2023-07-05
  • jsp怎么判断session是否为空
    在JSP中,可以使用如下方法来判断session是否为空:1. 使用JSTL标签库:```jsp...Session为空Sessio...
    99+
    2023-08-18
    jsp session
  • c++怎么判断一个字符串是否为回文
    在C++中,可以通过以下方法来判断一个字符串是否为回文: 使用双指针法:定义两个指针,一个指向字符串的开头,一个指向字符串的末尾。...
    99+
    2024-02-29
    C++
  • nginx怎么判断参数是否为空
    在nginx中,可以使用if语句来判断参数是否为空。以下是一个示例代码: location /test { if ($arg...
    99+
    2024-03-02
    nginx
  • php中怎么判断是否为数组
    今天小编给大家分享一下php中怎么判断是否为数组的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php中判断是否为数组的函数是...
    99+
    2023-07-02
  • java怎么判断列表是否为空
    在Java中,可以使用以下方式来判断一个列表是否为空: 使用size()方法:通过调用列表的size()方法,如果返回值为0,则表...
    99+
    2023-10-24
    java
  • linux怎么判断变量是否为空
    在Linux中,可以使用以下方式判断一个变量是否为空: 使用if语句判断变量是否为空: if [ -z "$var&q...
    99+
    2024-03-01
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作