编辑距离_Leetcode, 远景智能笔试题
编辑距离
给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。
你可以对一个单词进行如下三种操作:
插入一个字符
删除一个字符
替换一个字符
示例 1:
输入: word1 = “horse”, word2 = “ros”
输出: 3
解释:
horse -> rorse (将 ‘h’ 替换为 ‘r’)
rorse -> rose (删除 ‘r’)
rose -> ros (删除 ‘e’)
示例 2:
输入: word1 = “intention”, word2 = “execution”
输出: 5
解释:
intention -> inention (删除 ‘t’)
inention -> enention (将 ‘i’ 替换为 ‘e’)
enention -> exention (将 ‘n’ 替换为 ‘x’)
exention -> exection (将 ‘n’ 替换为 ‘c’)
exection -> execution (插入 ‘u’)
解释: 用dp[i + 1][j+1]来表示字符串a的0~i 转换为字符串b的0~j最少操作数可知存在下列两种关系, 代表匹配与不匹配时递推式.
dp[i + 1][j + 1] = dp[i][j];
dp[i + 1][j + 1] = min(dp[i][j], min(dp[i + 1][j], dp[i][j + 1])) + 1;
笔试时, 怎么也没想到动态规划, 一直想着求出两个字符串的最长相同序列, 太久没碰算法了, 思维弱了好多, 得刷题
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;int minDistance(string word1, string word2) {int len1 = word1.length(), len2 = word2.length();vector<vector<int>> dp(len1 + 1, vector<int>(len2 + 1, 0));for (int i = 1; i <= len1; i++)dp[i][0] = i;for (int j = 1; j <= len2; j++)dp[0][j] = j;for (int i = 0; i < len1; i++){for (int j = 0; j < len2; j++){if (word1[i] == word2[j]){dp[i + 1][j + 1] = dp[i][j];}else{dp[i + 1][j + 1] = min(dp[i][j], min(dp[i + 1][j], dp[i][j + 1])) + 1;}}}return dp[len1][len2];
}int main()
{ios::sync_with_stdio(false);string a, b;cin >> a >> b;cout << minDistance(a, b);}
编辑距离_Leetcode, 远景智能笔试题相关推荐
- 小米校园招聘笔试题--括号智能纠错
一 问题描述: 二 解题思路: 因为要对括号序列进行插入操作,所以选择链表作为序列的数据结构,在判断括号序列是否合法时,要用到堆栈,所以选择堆栈用以存放左半括号 三 代码: /* This is a ...
- 【笔试题】2019海康威视嵌入式软件开发工程师(多媒体智能应用)笔试题(附超详细解答)
与嵌入式软件开发工程师(BSP)的题目类型来说,多媒体&智能应用的笔试题在前面的选择题上类型差不多,主要是两条简答题.前者是偏向于Linux驱动方面,后者是偏向于视频/音频的采集或者编码方面. ...
- 2014-百度 阿里 华为笔试题
8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿出来两个球: ii.如果取出的是两 ...
- 最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析
最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿 ...
- 百度 阿里 华为 腾讯 谷歌面试笔试题及解析
8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿出来两个球: ii.如果取出的是两 ...
- 【转】2014百度 阿里 华为 腾讯 谷歌面试笔试题及解析
原文: http://www.cnblogs.com/JuneWang/p/3773880.html 已知memcpy的函数为: void* memcpy(void *dest , const voi ...
- 最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析 (转)
原文地址:http://m.blog.csdn.net/blog/panfengyun12345/12618453 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有 ...
- 程序员必看 c++笔试题汇总
①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题.比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3-& ...
- 剑指Offer——当当+搜狐+好未来笔试题+知识点总结
剑指Offer--当当+搜狐+好未来笔试题+知识点总结 情景回想 时间:2016.9.21 15:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:当当笔试.搜狐笔试.好未来笔试 3 ...
最新文章
- php职能等级,php如何设置报错级别
- python中image.open函数怎么用_详解Python中open()函数指定文件打开方式的用法
- 【云周刊】第205期:阿里云重磅开源实时计算平台Blink,挑战计算领域的“珠峰”...
- 作者:卢祥虎,男,北京金信网银金融信息服务有限公司机器学习算法工程师。...
- 深度解读最流行的优化算法:梯度下降
- [大牛翻译系列]Hadoop(7)MapReduce:抽样(Sampling)
- 1stopt拟合步骤_1stopt快速公式拟合
- 解决谷歌浏览器最新版本CORS跨域问题
- 移动端日历组件设计与实现
- 学好机器学习需要哪些数学知识?
- Xposed插件开发环境配置
- u盘一插上计算机就不响应,u盘插上没反应解决方法
- 线性代数:03 向量空间 -- 线性相关与线性无关
- lc电路在计算机中应用,LC电路的基础知识介绍
- 一个IT人的咖啡爱情
- C++不定参数个数函数的写法
- DNN降噪取得大突破 清微智能、清华合发论文被邀登语音旗舰会议ICASSP演讲
- HTML列表标签,赶紧收藏!
- 日本人为何能拿这么多诺贝尔奖
- flarum头像插件的使用
热门文章
- 升级Turnkey Rails虚拟机到最新Rails版本
- [JavaWeb①]复习题库
- 决定未来IT产业版图的“三国”纷争
- 区块链如何保证使用安全
- 基于c语言的自动泊车系统软件设计,基于单片机的自动泊车系统实验平台的设计.doc...
- 基于uniapp+express+mysql购物商城模板设计
- 【Python】初识Python
- cytoscape安装java_Cytoscape软件学习(1):简介及安装
- android智能语音播放器,Android SDK
- Wifi和IEEE802.11标准