算法(四十)

1、實現一個算法,確定一個字符串 s 的所有字符是否全都不同。

class Solution {

    public boolean isUnique(String astr) {

        int len = astr.length();

        for(int i=0; i<len; i++){

            for(int j=i+1; j<len; j++){

                if(astr.charAt(i) == astr.charAt(j)){

                    return false;

                }

            }

        }

        return true;

    }

}

2、給定兩個字符串 s1 和 s2,請編寫一個程序,確定其中一個字符串的字符重新排列後,能否變成另一個字符串。

  • 方法一

class Solution {

    public boolean CheckPermutation(String s1, String s2) {

        if(s1.length() != s2.length()){

            return false;

        }

 

        int[] temp = new int[256];

        for(int i=0;i<s1.length();i++){

            temp[s1.charAt(i)]++;

        }

        for(int i=0;i<s2.length();i++){

            if(temp[s2.charAt(i)] == 0){

                return false;

            }

            temp[s2.charAt(i)]--;

        }

        return true;

    }

}

  • 方法二

class Solution {

    public boolean CheckPermutation(String s1, String s2) {

        int len1 = s1.length();

        int len2 = s2.length();

        if(len1!=len2) return false;

        String newS1 = fun(s1);

        String newS2 = fun(s2);

        if(newS1.equals(newS2)){

            return true;

        }else{

            return false;

        }

    }

 

    public String fun(String s){

        char[] ch = s.toCharArray();

        int len = s.length();

        char temp;

        for(int i=0; i<len; i++){

            for(int j=0; j<len-1; j++){

                if(ch[j] > ch[j+1]){

                    temp = ch[j];

                    ch[j] = ch[j+1];

                    ch[j+1] = temp;

                }

            }

        }

        return String.valueOf(ch);

    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章