作者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://webptt.com/cn.aspx?n=bbs/java/M.1428606314.A.144.html
※ 编辑: yule1224 (135.0.163.188), 04/10/2015 03:06:00
1F:→ bitlife: --letters[c]会有先减1再来判断的作用,你的写法不会减1 04/10 08:00
2F:推 longlongint: 因为两个字串一样长。此起彼落 04/10 18:00
3F:→ longlongint: 扣到变负的 代表某字母的数量不一样多 04/10 18:01
4F:→ longlongint: 每种字母数量一样多 iff is permutation 04/10 18:02
了解 感恩
※ 编辑: yule1224 (135.0.163.188), 04/11/2015 01:02:32