アルゴリズム練習_004最初の重複しない文字を検索
タイトル:1つの文字列に1回だけ表示される最初の文字を見つけます.abaccdeffが入力されると、bが出力される
#include <stdio.h>
#define MaxSize 255
int FirstDChar(char a[], int n)
{
int i=0, j=n;
//flag 0
int flag[MaxSize] = {0};
while (i < j)
{
//
// a[i] a[j]
//
if (!flag[i] && a[i] == a[j])
{
flag[i] = flag[j] = 1;
i++;
j = n;
}
// j--
else if (!flag[i] && a[i] != a[j])
{
j--;
}
//
//
else
{
i++;
j = n;
}
}
// flag 0
//
for (i=0; i<=n; ++i)
if(!flag[i])
break;
if (i > n)
return 0;
else
return i;
}
int main(void)
{
char a[MaxSize];
int len, n;
//
scanf("%s", a);
len = strlen(a);
n = FirstDChar(a, len-1);
if (!n)
printf("
");
else
printf("%c
", a[n]);
return 0;
}