在字符串中的面试题中,有一类题是常考的,就是关于求字符频率问题的题。
字符串频率问题最好的办法或者说最通用的办法就是转化为数组问题。
for(int i=0; i<str.length(); i++) {
int value = str.charAt(i);
helper[value]++;
}
我们先来看几个例子
1. 判断一个字符串是否有重复的字符。
此题采用布尔型数组判断,因为整个计算机的ASCII码总数是128个基本码+128扩展码,所以只要一个字符串超过了256, 一定会出现重复字符。
默认boolean型helper数组的每个字符都为false, 一旦访问就变为true,
一旦访问的字符数组值已经为true,那就说明出现重复字符,返回false即可,
如果整个字符串访问结束,就返回true。
代码如下 public static boolean isUnique(String str) {
if(str.length()>256)
return false;
boolean[] helper = new b