题目描述
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = "abaccdeff"
返回 "b"
s = ""
返回 " "
解题思路
【利用数组解决】
1.将所给的字符串转成字符数组;
2.创建一个新的整型数组arr,大小为26;
3.对字符数组进行遍历,在数组arr上实现累加操作;
4.再次循环查看数组arr中哪个数字第一次为1,即为题所求元素;
5.否则就返回空元素。
代码块
class Solution {
public char firstUniqChar(String s) {
char[] chars = s.toCharArray();//转成字符数组
//创建一个整型数组,存放26位
int[] arr=new int[26];
for(char c: chars){//循环chars
arr[c-'a']++;
}
for(char ch:chars){ //再循环一次数组arr
if (arr[ch-'a']==1){ //代表只出现过一次
return ch;
}
}
return ' '; //没有就返回空
}
}