编辑距离的php实现
来源:互联网 发布:环绕音乐制作软件 编辑:程序博客网 时间:2024/05/22 00:41
使用php完成编辑距离计算
编辑距离:是指两个字串由一个转成另一个所需的最少操作次数。
操作包括:将一个字符替换成另一个字符,插入一个字符,删除一个字符。
求编辑距离在‘链家’2017秋校招笔试中出现。
当时分了三种情况,前两种写出来了,最后一种确实有点复杂,只写了思路。
后来才发现原来php有解决编辑问题的库函数……
如果当时用一行代码解决了问题,估计鸟哥会给我好评。
所需参数:字串1、字串2;返回:从字串1变为字串2需要的操作次数。
(为什么不叫“字符串”而叫“字串”?不清楚,我从多个地方看到的描述都是写的“字串”而不是“字符串”,有了解的希望在评论里回复答案)
代码:
<?phpecho levenshtein("134", "1234"); //插入 2echo "<br>";echo levenshtein("1334", "1234"); //替换 3 为 2echo "<br>";echo levenshtein("12345", "1234"); //删除 5echo "<br>";echo levenshtein("134", "1234", 1, 10, 100); //插入 2echo "<br>";echo levenshtein("1334", "1234", 1, 10, 100); //替换 3 为 2echo "<br>";echo levenshtein("12345", "1234", 1, 10, 100); //删除 5
输出:
111110100
函数后面三个参数是可选的,默认都是1,按顺序分别代表 插入、替换、删除 的乘数,示例:
levenshtein("14", "1234", 1, 10, 100) == 2*1; //需要插入2个字符,乘数是1,所以返回2*1 = 2levenshtein("1444", "1234", 1, 10, 100) == 2*10; //需要替换2个字符,乘数是10,所以返回2*10 = 20levenshtein("123456789", "1234", 1, 10, 100) == 5*100; //需要删除5个字符,乘数是100,所以返回5*100 = 500
闲谈
A:php是世界上最好的语言!
B:当你真正深入了解php就会发现它的众多弊端!
A:弊端?比如呢?
B:函数命名不规范、面向对象不完善,还有……额……总之有很多弊端……
我在网络上搜索相关信息,发现说php不好的用户说的都是同一句话:“当你真正深入了解php就会发现它的众多弊端!”,然后列出了两三条众所周知“弊端”。还有一些无厘头的言论:1“和汇编相比,你php算个屁”、2“php命名像屎一样”、3“php只能开发web应用,弱爆了”、4“敢说自己是面向对象语言?”。
可能不对的回复:
1、你为什么要拿汇编和php比?让人不明觉厉;
2、php有的函数命名确实不规范,但为了兼容不同版本,php开发组没有修改函数名;(敢问提出这个点的人:您有没有用过这些不规范函数呢?)
3、您有一份让php吃遍天下的心,phper应该会很欣慰;
4、现在是php7;醒醒,大清亡了!
就像levenshtein()函数一样,php还有很多很容易使用的函数,简单易用是php的最大特点。
在我了解的php、java和python中,我会投php一票。
希望将来能够发出“当你真正深入了解php就会发现它的众多弊端!”的感慨,到时再细细讲述php的众多弊端吧,,
- 编辑距离的php实现
- 编辑距离的Ruby实现
- 编辑距离算法的实现
- 编辑距离算法的java实现
- 字符串编辑距离的几种实现
- java实现的最小编辑距离
- 编辑距离(LD)算法的python实现
- 编辑距离算法实现
- 编辑距离--java实现
- 字符串的编辑距离
- 字符串的编辑距离
- 字符串的编辑距离
- 句子的编辑距离
- 字符串的编辑距离
- 字符串的编辑距离
- 字符串的编辑距离
- 编辑距离实现源码(Levenstein距离)
- 最小编辑距离python实现
- VIM(8.0)与Emacs
- 初窥javaScrit权威指南,第一章
- L Daylight Saving Time(模拟)
- HashMap
- JAVA基础--集合
- 编辑距离的php实现
- LeetCode 409. Longest Palindrome
- 面试题---数据库多表查询
- 性能/压力测试工具Apache ab修改:按时间进行性能/压力测试
- 【java】浅谈java内部类
- 第一周 第二次 算法设计的基本要求
- react基础(2)
- android material doc
- 翻译:MariaDB ALTER TABLE语句