题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
C语言版本
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ int FirstNotRepeatingChar(char* str ) { // write code here char *cur = str; int letters[26*2] = {0}; //声明数组用来存储字母出现的次数,按照a-z A-Z //先存储str的字符的出现次数 for(int i = 0; cur[i] != '\0'; i++){ if(cur[i] >= 'a' && cur[i] <= 'z'){ letters[cur[i] - 'a']++; }else{ letters[cur[i] - 'A' + 26]++; } } //str从头检索letters,如果为1则表示第一次出现次数为1的字母,返回索引 for(int i = 0; cur[i] != '\0'; i++){ if(cur[i] >= 'a' && cur[i] <= 'z'){ if(letters[cur[i] - 'a'] == 1) return i; }else{ if(letters[cur[i] - 'A' + 26] == 1) return i; } } return -1; }