/************************************************************************
5.3面試例題:第一個(gè)無(wú)重復字符
請編寫(xiě)一個(gè)高效率的函數來(lái)找出字符串中的第一個(gè)無(wú)重復的字符。
例如:
"total"中的第一個(gè)無(wú)重復的字符是"o";
"teeter"中的第一個(gè)無(wú)重復的字符是"r"。
O(n)
************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#define MAX_CHAR 256
int firstNonRepeatedChar(char str[], char *c) {
int i = 0;
int j = 0;
int p[MAX_CHAR];
for (j = 0; j < MAX_CHAR; j++) {
p[j] = 0;
}
while (str[i] != ‘\0‘) {
p[str[i]]++;
i++;
}
for (i = 0; str[i] != ‘\0‘; i++) {
if (p[str[i]] == 1) {
*c = str[i];
return 1;
}
}
return 0;
}
int main() {
char str[] = "total";
char a;
if (firstNonRepeatedChar(str, &a) == 1) {
printf("%c", a);
}
return 0;
}
聯(lián)系客服