很简单一道题,设置一个数组用来标志这个字符有没有出现过
如果出现过就让这个字符所在位置的数组值+1
ps:今天笔试的时候sb了,把这个数组设置成了boolen类型的,重复出现就将这个位置变为false,最后找出值为true的
出来的时候想到,如果这个数出现的个数是奇数,这个位置也是true。我还是太弱了。
/**
* @program: Sword_to_Offer
* @author: GoKu
* @create: 2019-09-23 23:26
*/
public class 字符串第一个只出现一次的字符 {
public static char finchar(String s){
char[] c = s.toCharArray();
int[] a = new int[256];
for(int i =0;i < c.length;i++){
a[c[i]]++;
}
for(int i =0;i < c.length;i++){
if(a[c[i]] == 1) return c[i];
}
return 0;
}
public static void main(String[] args) {
String s = "assdffjkk";
System.out.println(finchar(s));
}
}