作者yule1224 (支持自經區服貿貨貿)
看板java
標題[問題] 一題permutation
時間Fri Apr 10 03:05:11 2015
在 Cracking the Coding Inview看到這一題,就是看兩條STRING是不是彼此的permutation
我的疑問是這樣的:
其中對於 if(--letters[c] <0), 為什麼不直接寫 if(letters[c] ==0) ????
...........................
public boolean permutation(String s, String t){
if(s.length() != t.length()) return false;
int[] letters = new int[256];
char[] s_array = s.toCharArrays();
for(char c: s_array){ letters[c]++;}
for(int i=0; i<t.length(); i++){
int c = (int) t.charAt(i);
if(--letters[c] <0) return false;
}
return true;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 135.0.163.188
※ 文章網址: https://www.ptt.cc/bbs/java/M.1428606314.A.144.html
※ 編輯: yule1224 (135.0.163.188), 04/10/2015 03:06:00
→ bitlife: --letters[c]會有先減1再來判斷的作用,你的寫法不會減1 04/10 08:00
推 longlongint: 因為兩個字串一樣長。此起彼落 04/10 18:00
→ longlongint: 扣到變負的 代表某字母的數量不一樣多 04/10 18:01
→ longlongint: 每種字母數量一樣多 iff is permutation 04/10 18:02
瞭解 感恩
※ 編輯: yule1224 (135.0.163.188), 04/11/2015 01:02:32