分享一道面试常问的JAVA的简单算法题目,例题:
给定字符串 s 找到出现1次的字符,如果有多个只取第一个,没有就返回空格,下面是代码演示:
public static void main(String[] args) {
System.out.println(firstUniqChar("hhhhziii"));
}
public static char firstUniqChar(String s) {
int[] num1=new int[26];
int[] num2=new int[26];
int tmp=0;
if(s.equals(""))return ' ';
for(int i=0;i<s.length();++i){
int x=s.charAt(i)-97;
if(num1[x]<=0)
num2[tmp++]=x;
++num1[x];
}
for(int i=0;i<26;++i){
if(num1[num2[i]]==1) return (char)(97+num2[i]);
}
return ' ';
}
运行输出即可实现效果