面試題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;
}
}
測試運行結果: