题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
C语言求解第一个出现的字符
解题思路
对于字符串google,这种重复字符串一般借助hash表实现,先遍历统计所有字母的频率存储到hash表,第二遍遍历寻找频率为1的序号即可。
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int FirstNotRepeatingChar(char* str ) {
//最大范围字母区间
int maxrange='z'-'A';
int *hash=(int *)malloc(sizeof(int)*maxrange);
for(int i=0;i<strlen(str);i++){
hash[str[i]-'A']++;
}
for(int i=0;i<strlen(str);i++)
if(hash[str[i]-'A']==1)
return i;
return -1;
}