题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
题解:使用 数组 ,两个 for 循环。看到挺多 人用 Map 或者 HashMap 但是我还不太熟悉这两个,等以后接触了再更新。
使用数组,首先创建一个 整数数组,一次for 循环用来存放字符串中每个字符出现的次数,再用一次 for 循环 遍历字符串中只出现一次的 字符,有则返回该字符,若没有,说明 字符串中没有只出现一次的 字符。
关于 int[] 的长度设置为 256 ,有大佬解释为按照扩展的 ASCII ,最多能有 256个。
public class firstUniqChar {
public char firstUniqChar(String s) {
int[] count = new int[256];
char[] chars = s.toCharArray();
for(char c : chars)
count[c]++;
for(char c : chars){
if(count[c] == 1)
return c;
}
return ' ';
}
}
网友评论