题目:
在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。
第一思路:借助于数组来做。
开辟一个长度为26的数组,用来存放字符串中每个字符出现的次数。这样第一次扫描去统计这个字符串中字符出现的次数,第二次去统计第一个出现结果为1的次数,并输出对应的字符。
public class Main {
//输出0代表没有满足条件的
public static char findFirstNoRepeatChar(String str){
if(str == null || str.trim().length()==0){
return '0';
}
int []counts = new int[26];
str = str.toLowerCase(); //防止出现大小写混乱的情况
int len = str.length();
for(int i = 0; i < len; i++){
counts[str.charAt(i) - 'a']++;
}
for(int i = 0; i < len; i++){
if(counts[str.charAt(i) - 'a'] == 1){
return str.charAt(i);
}
}
return '0';
}
public static void main(String[] args) {
System.out.println(findFirstNoRepeatChar("abaccdeff"));
}
}
<