• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

xxxqqq

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

Edit Distance II

Given two strings S and T, determine if they are both one edit distance apart.

Example

Given s = "aDb", t = "adb"
return true

思维惯性造成上来就想call Edit Distance的算法 然后看需要改多少步
后来想想这个问题“One”很特殊 要好好利用 才发现简单的string compare就可以解决
最后判断前面的字符全部相等的情况,此时只看长度
 
 1 public class Solution {
 2     /**
 3      * @param s a string
 4      * @param t a string
 5      * @return true if they are both one edit distance apart or false
 6      */
 7     public boolean isOneEditDistance(String s, String t) {
 8         // Write your code here
 9         if(s==null||t==null) return true;
10         if(s!=null&&t==null||s==null&&t!=null) return false;
11         int sLen = s.length();
12         int tLen = t.length();
13         if(Math.abs(sLen-tLen)>=2) return false;
14         
15         for(int i=0; i<Math.min(sLen, tLen);i++){
16             if(s.charAt(i) != t.charAt(i)){
17                 if(sLen==tLen ){
18                     return s.substring(i+1, sLen).equals(t.substring(i+1, tLen));
19                 } else if (sLen< tLen ){
20                     return s.substring(i, sLen).equals(t.substring(i+1, tLen));
21                 } else if (sLen> tLen ){
22                     return s.substring(i+1, sLen).equals(t.substring(i, tLen));
23                 }
24             }
25         }
26         if(sLen==tLen){
27             return false;
28         }else{
29             return true;
30         }
31     }
32 }

 

posted on 2017-05-10 13:38  xxxqqq  阅读(280)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3