#includechar first_single(char *s) { int cnt[256] = {0}; for (int i = 0; s[i]; i++) cnt[(unsigned char)s[i]]++; for (int i = 0; s[i]; i++) if (cnt[(unsigned char)s[i]] == 1) return s[i]; return '\0'; } int main() { char s[100]; scanf("%99s", s); printf("%c\n", first_single(s)); return 0; }
Input: abaccdeff Output: b Input: aabbcc Output: (空行,回傳 \0)
最精簡、最高效的標準解法。面試白板碼可直接寫出此版本,並主動解釋 `unsigned char` 強制轉型的必要性。