Leetcode 161) One Edit Distance

내 답안

  • 예외를 생각하지 않아서 너무 많이 틀려버림. 예외가 너무 많았다. 문제 잘 읽고 생각한 후 푼다.
  • 코드는 쉬운편이었는데, 예외가..
class Solution {
    public boolean isOneEditDistance(String s, String t) {
        int i=0;
        if(s.equals(t)){
            return false;
        }

        if(t.length() + s.length()==1 ){
            return true;
        }
        if(t.length()==1 && s.length()==1){
            return true;
        }


        while(i<=s.length() && i<=t.length()){
            // s => add
            String curs= s.substring(0,i);
            String curt=t.substring(0,i);
            if(!curs.equals(curt)){
                return false;            
            }else{
                //앞이 같고
                //뒤에 하나 남았을 경우에

                //삭제
                if(i+1<=s.length()){
                    if(s.substring(i+1).equals(t.substring(i))){
                        return true;
                    }}
                //더하기
                if(i+1<=t.length()){
                    if(s.substring(i).equals(t.substring(i+1))){
                        return true;
                    }}
                //대체하기
                if(i+1<=t.length() && i+1<=s.length()){
                    if(s.substring(i+1).equals(t.substring(i+1))){
                        return true;
                    }                                                         
                }
            }
            i++;        
        }

        return false;
    }

}

다른 답안

class Solution {
    public boolean isOneEditDistance(String s, String t) {
        int ns = s.length();
        int nt = t.length();
        if (ns > nt)
            return isOneEditDistance(t, s);
        if (nt - ns > 1 )
            return false;
        for (int i = 0; i < ns; i++) {
            if (s.charAt(i) != t.charAt(i)) {
                if (ns == nt) {
                    return s.substring(i + 1).equals(t.substring(i + 1));
                } else
                    return s.substring(i).equals(t.substring(i + 1));
            }
        }
        return (ns + 1 == nt);
    }

}

© 2018. All rights reserved.

Powered by Hydejack v8.5.2