看板 java 關於我們 聯絡資訊
在 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