public char firstUniqChar(String str) {
// Write your code here
Character result = null;
if(str == null) {
break;
}
int i = 0;
char[] arr = str.toCharArray();
int[] hashTable = new int[256];
for(i = 0; i < 256; i++) {
hashTable[i] = 0;//实例一个所有值为零的一个数组
}
char[] hashKey = arr;
for(i = 0; i < hashKey.length; i++) {
int tmp = hashKey[i];// 将char 转为 int,即转为其对应的ASCAII码
hashTable[tmp]++;//找到字母对应的ascii码,再将数组中与之对应下标的数值加1
}
for(i = 0; i < hashKey.length; i++) {
if(hashTable[hashKey[i]] == 1) {//等于一说明只出现过一次
result = (char)hashKey[i];
System.out.println((char)hashKey[i]);
break;
}
}
return result;
}
```
给出一个字符串,找出第一个只出现一次的字符。 --lintcode
最新推荐文章于 2024-09-27 20:23:39 发布