leetcode面試題01.02java 判定是否互爲字符重排

面試題01.02:

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

示例 1:

輸入: s1 = "abc", s2 = "bca"
輸出: true 
示例 2:

輸入: s1 = "abc", s2 = "bad"
輸出: false
說明:

0 <= len(s1) <= 100
0 <= len(s2) <= 100
 

java實現:

/*
 *此處定義數組長度爲128,因爲基礎ASCII碼是128位,如果算上拓展ASCII碼纔有256位。
 *思路:其實就是計算 兩個字符串 中是否包含一樣多的相同字符
 */

class Solution {

    public boolean CheckPermutation(String s1, String s2) {
      if (s1.length() != s2.length()) {
        return false;
      }
      int[] repeats1 = new int[128];

      for (int i = 0; i < s1.length(); i++) {
        repeats1[s1.charAt(i)]++;
        repeats1[s2.charAt(i)]--;
      }

      for (int i = 0; i < repeats1.length; i++) {
        if (repeats1[i] != 0) {
          return false;
        }
      }
      return true;
    }
}

測試運行結果:

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