题目
题目链接:
https://www.nowcoder.com/practice/0b4b22ae020247ba8ac086674f1bd2bc
思路
注意:必须要新增一个,或者删除一个,或者替换一个,所以不能相等 1.如果s和t相等,返回false,如果s和t长度差大于1,返回false 2.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 m) { //s比t多一个,那s就删一个 return s.substring(i + 1).equals(t.substring(j)); } else if (n参考答案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 - n if n > m { diff = n - m } if s == t || diff > 1 { return false } i := 0 j := 0 for i m { //s 比t多一个,s删一个 return s[i+1:] == t[j:] } else if n参考答案PHP