给出两个单词word1和word2,写一个函数计算出将word1 转换为word2的最少操作次数。
问题:
给出两个单词word1和word2,写一个函数计算出将word1 转换为word2的最少操作次数。
你总共三种操作方法:
1、插入一个字符
2、删除一个字符
3、替换一个字符
格式:
输入行输入两个字符串 word1 和 word2,最后输出将 word1 转换为 word2的最少操作次数。
例如:
输入
word1 = "mart"
word2 = "karma"
输出
3
准备知识:
编辑距离及编辑距离算法
代码实现:
1.
def d(m, n):
if m == 0 or n == 0:
return abs(m - n)
if word1[m - 1] == word2[n - 1]:
return d(m - 1, n - 1)
else:
return min([d(m, n - 1) + 1, d(m - 1, n) + 1, d(m - 1, n - 1) + 1]) while True:
word1 = input("word1=:")
word2 = input("word2=:")
print(d(len(word1), len(word2)))
2.
def minDis(word1,word2):
m = len(word1)+1
n = len(word2)+1
dp = [[0 for i in range(n)] for j in range(m)] for i in range(n):
dp[0][i] = i for i in range(m):
dp[i][0] = i for i in range(1,m):
for j in range(1,n):
dp[i][j] = min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+(0 if word1[i-1]==word2[j-1] else 1))
return dp[m-1][n-1] if __name__ == '__main__':
word1 = input('word1=')
word2 = input('word2=')
print(minDis(word1, word2))
给出两个单词word1和word2,写一个函数计算出将word1 转换为word2的最少操作次数。的更多相关文章
- 给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列
问题 给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列.规则如下: 一次只能改变一个字母 中间单词必须在字典里存在 例如: 给出 start = "hit ...
- 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...
- 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码【123和12345】那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出的电话号码(java实现)
解题: 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码[123和12345]那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出 ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
- 有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a
题目:有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a,具体实现如下: #include<stdlib.h> #include ...
- 有两个数a,b,请写一个函数交换a,b
题目:有两个数a,b,请写一个函数交换a,b,具体实现如下: #include<stdlib.h> #include<stdio.h> int swap(int * pA, i ...
- 【C语言】写一个函数,实现字符串内单词逆序
//写一个函数,实现字符串内单词逆序 //比如student a am i.逆序后i am a student. #include <stdio.h> #include <strin ...
- 《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
弱菜刷题还是刷中文题好了,没必要和英文过不去,现在的重点是基本代码能力的恢复. [题目] 剑指offer 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 直觉 ...
- 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比
算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} 要找出那些数相加等 ...
随机推荐
- IrisSkin 单独控件样式设置 不使用皮肤样式
可以设置控件的Tag为this.skinEngine1.DisableTag [DefaultValue()] [Description("If you do not want skin t ...
- C# 操作SQL Server 公共库
基本够用,存一下,以后找起来方便 public abstract class DB { //数据库连接字符串(config来配置) protected static string connection ...
- 爬虫解析之css,xpath语法
一.xpath语法 xpath实例文档 <?xml version="1.0" encoding="ISO-8859-1"?> <bookst ...
- ubuntu14.04 网络配置
流程分析: 在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的d ...
- python学习04
数据类型-list,tuple 1) 1.1.list的表现方法:[1,2,3,4,5,6] 1.2.计算list的长度用 len() 1.3 list中的索引 a =[1,2,3,4,5] a[1] ...
- 本地图片上传与H5适配知识
最近用到本地图片上传作为API的参数,在网上看了许多,记录一下,以后可能用的着(仅自己记录用,看不清请绕路) function getObjectURL(file) { var url = null ...
- Go 环境配置
1.下载SDK 官网:https://golang.google.cn/ go中文在线文档:https://studygolang.com/pkgdoc 2.配置环境变量 windows使用.msi一 ...
- 【原创】大数据基础之Parquet(1)简介
http://parquet.apache.org 层次结构: file -> row groups -> column chunks -> pages(data/index/dic ...
- 【原创】大数据基础之ORC(1)简介
https://orc.apache.org Optimized Row Columnar (ORC) file 行列混合存储 层次结构: file -> stripes -> row g ...
- 【原创】运维基础之Nginx(1)简介、安装、使用
官方:http://nginx.org nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a ...