当前位置: 首页 > news >正文

面试题. 一次编辑

字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。

示例 1:

输入: 
first = "pale"
second = "ple"
输出: True

示例 2:

输入: 
first = "pales"
second = "pal"
输出: False

代码如下:

//只进行一次编辑有三种情况
//1.替换,两个字符串的长度相等,但其中有一个字符不相等
//2.插入,first<second,并且只有一个字符不一样
//3.删除,first>second,并且只有一个字符不一样
class Solution {
public:bool oneEditAway(string first, string second) {int m=first.size();int n=second.size();if(n-m>1||m-n>1){return false;//两个字符串的长度相差大于1,不只进行一次操作}if(n==m+1){return oneEditAway(second,first);//插入-->与删除刚好相反}int i=0,j=0;int count=0;while(i<m&&j<n){if(first[i]!=second[j]){count++;if(count>=2){return false;}if(m>n)//删除{j--;//为了让原地等待,先回退一步,后面会在向右移一步}}i++;//每次向右移一步j++;//每次向左移一步}return true;}
};

http://www.lryc.cn/news/122420.html

相关文章:

  • Unity悬浮显示提示内容
  • 变形金刚在图像识别方面比CNN更好吗?
  • 【Javascript】ES6新增之类的认识
  • C#随机法 双峰函数 求极值 避免落入局部最优解
  • JavaScript高级:常见设计模式
  • 32bit国产低功耗无线MCU芯片
  • scope组件穿透
  • 分类预测 | Python实现LR逻辑回归多输入分类预测
  • 【微信小程序】通过使用 wx.navigateTo方法进行页面跳转,跳转后的页面中通过一些方式回传值给原页面
  • DIP: Spectral Bias of DIP 频谱偏置解释DIP
  • 【考研数学】概率论与梳理统计 | 第一章——随机事件与概率(1)
  • LeetCode 36题:有效的数独
  • word横向页面侧面页码设置及转pdf后横线变竖线的解决方案
  • 华为OD机试 - 字符串划分(Java JS Python)
  • 使用 `nmcli` 在 CentOS 8 上添加永久路由
  • Java基础五之for循环小练习
  • 解决 Python RabbitMQ/Pika 报错:pop from an empty deque
  • 观察者模式实战
  • 035_小驰私房菜_Qualcomm账号注册以及提case流程
  • uniapp input输入框placeholder文本右对齐
  • 分布式监控平台—zabbix
  • 【leetcode】第一章数组-2
  • 程序使用Microsoft.XMLHTTP对象请求https时出错解决
  • Linux安装配置nginx+php搭建
  • springboot的各种配置
  • OSI七层模型及TCP/IP四层模型
  • MDN-Web APIs
  • 2023国赛数学建模C题思路分析
  • 暑假集训笔记
  • 【枚举+推式子】牛客小白月赛 63 E