[問題] 一題permutation

看板java作者 (支持自經區服貿貨貿)時間10年前 (2015/04/10 03:05), 10年前編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
在 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

04/10 08:00, , 1F
--letters[c]會有先減1再來判斷的作用,你的寫法不會減1
04/10 08:00, 1F

04/10 18:00, , 2F
因為兩個字串一樣長。此起彼落
04/10 18:00, 2F

04/10 18:01, , 3F
扣到變負的 代表某字母的數量不一樣多
04/10 18:01, 3F

04/10 18:02, , 4F
每種字母數量一樣多 iff is permutation
04/10 18:02, 4F
瞭解 感恩 ※ 編輯: yule1224 (135.0.163.188), 04/11/2015 01:02:32
文章代碼(AID): #1L9irg54 (java)
文章代碼(AID): #1L9irg54 (java)