首页 > 代码库 > Leetcode-One Edit Distance
Leetcode-One Edit Distance
Given two strings S and T, determine if they are both one edit distance apart.
Analysis:
Must be exactly one distance apart. Not the same.
Solution:
1 public class Solution { 2 public boolean isOneEditDistance(String s, String t) { 3 if (s.length()==0 && t.length()==0) return false; 4 if (s.length()+t.length()==1) return true; 5 6 if (Math.abs(s.length()-t.length())>1) return false; 7 8 if (s.length()==t.length()) return isOneReplace(s,t); 9 10 if (s.length()>t.length()) return isOneInsert(s,t);11 else return isOneInsert(t,s);12 13 }14 15 public boolean isOneInsert(String a, String b){16 //a is 1 char longer than b, we determine whether a and b is one insertion distance.17 18 boolean modified = false;19 20 int index1 = 0;21 int index2 = 0;22 23 while (index2<b.length()){24 if (a.charAt(index1)==b.charAt(index2)){25 index1++;26 index2++;27 } else {28 if (modified) return false;29 else {30 index1++;31 modified = true;32 }33 }34 }35 return true;36 }37 38 39 public boolean isOneReplace(String a, String b){40 //a and b have the same length, we determine whether they are one replace aparted.41 boolean modified = false;42 int index1=0;43 while (index1<a.length())44 if (a.charAt(index1)==b.charAt(index1))45 index1++;46 else if (modified) return false;47 else {48 index1++;49 modified = true;50 }51 if (modified) return true;52 else return false;53 }54 55 56 57 58 }
Leetcode-One Edit Distance
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。