LintCode文字列置換JAVA

1099 ワード

要求:2つの文字列を指定するには、1つの文字列が別の文字列の置換であるかどうかを判定する方法を設計します.
置換とは,順序を変えることで2つの文字列を等しくすることを意味する.
サンプル"abc"  を選択します.  "cba"  に表示されます."aabc"  いいえ  "abcc"  に表示されます.
構想:2つの文字列のうち1つがnullでfalseである場合.2つの文字列の長さが異なる場合もfalseです.次に、2つのstring文字列を2つのchar配列に変換し、配列の各値をint加算に変換します.順序が異なる場合でも、加算されたintは同じです.
public class Solution {
    /**
     * @param A a string
     * @param B a string
     * @return a boolean
     */
    public boolean stringPermutation(String A, String B) {
        // Write your code here
        if (A == null || B == null)
            return false;
            
        char[] arrA = A.toCharArray();
        char[] arrB = B.toCharArray();
        
        int a = 0;
        int b = 0;
        
        if (arrA.length != arrB.length)
            return false;   
        
        for (int i = 0; i < arrA.length; i++)
        {
            a += arrA[i];
            b += arrB[i];
        }
        
        if (a == b)
            return true;
        return false;
    }
}