网站开发设计制作合同,网站建设职位,赣州建设公司网站,建站公司外贸题目 题目链接#xff1a; https://www.nowcoder.com/practice/0b4b22ae020247ba8ac086674f1bd2bc
思路 注意#xff1a;必须要新增一个#xff0c;或者删除一个#xff0c;或者替换一个#xff0c;所以不能相等1.如果s和t相等#xff0c;返回false,如果s和t长度差大于1…题目 题目链接 https://www.nowcoder.com/practice/0b4b22ae020247ba8ac086674f1bd2bc
思路 注意必须要新增一个或者删除一个或者替换一个所以不能相等1.如果s和t相等返回false,如果s和t长度差大于1返回false2.s比t长s删除【忽略】一个比较是否相等3.s比t短t要删除【忽略】一个比较是否相等4.s和t一样长那么找到第一个不同的字符的位置过滤掉。比较后面的是否相等参考答案Java
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param s string字符串* param t string字符串* return bool布尔型*/public boolean editdistance (String s, String t) {int n s.length();int m t.length();int diff Math.abs(n - m);if (s.equals(t) || diff 1 ) return false;int i 0, j 0;while (i n j m s.charAt(i) t.charAt(j)) {i;j;}if (n m) { //s比t多一个那s就删一个return s.substring(i 1).equals(t.substring(j));} else if (n m) { //s比t少一个那就s加一个return s.substring(i).equals(t.substring(j 1));} else { //相等那就替换,s和t都往前走一步return s.substring(i 1).equals(t.substring(j 1));}}
}参考答案Go
package main//import fmt/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param s string字符串* param t string字符串* return bool布尔型*/
func editdistance(s string, t string) bool {n : len(s)m : len(t)diff : m - nif n m {diff n - m}if s t || diff 1 {return false}i : 0j : 0for i n j m s[i] t[j] {ij}if n m { //s 比t多一个s删一个return s[i1:] t[j:]} else if n m { //s比t少一个s就加一个return s[i:] t[j1:]} else { //s和t一样长那就替换也就是s和t都往前走一步return s[i1:] t[j1:]}
}
参考答案PHP
?php/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param s string字符串 * param t string字符串 * return bool布尔型*/
function editdistance( $s , $t )
{$n strlen($s);$m strlen($t);$diff $n-$m;if($m$n) {$diff $m-$n;}if($s$t || $diff 1) return false;$i0;$j0;while ($i$n $j$m $s[$i]$t[$j]){$i;$j;}if($n $m){ //s多一个删s中的那个return substr($s,$i1) substr($t,$j);}else if($n $m){ //s少一个s中加一个return substr($s,$i) substr($t,$j1);}else{ //s,t长度一样替换都往前走一步return substr($s,$i1) substr($t,$j1);}
}