剑指Offer 找出字符串中第一个只出现一次的字符

时间:2023-02-04 20:50:34

题目描述

找出字符串中第一个只出现一次的字符

如果无此字符 请输出'.'

输入描述:

输入一串字符,由小写字母组成

输出描述:

输出一个字符

输入例子:
asdfasdfo
输出例子:
o

思路:
数组s记录出现的字母顺序。time数组记录出现的次数,每个char对应一个int型,,,所以,字母a出现的次数可以直接用time['a']表示。 AC代码:
 #include "iostream"
#include "string.h"
#define MAX 201
using namespace std; char FindChar(char* pInputString)
{
char s[];//字母出现的顺序
int time[MAX] = {};//字母出现的次数
int t = ;
char ans; for (int i = ; i < strlen(pInputString); i++)
{
if (time[pInputString[i]] == )
{
s[t] = pInputString[i];
t++;
} time[pInputString[i]] ++;
} for (int i = ; i < t; i++)
{
if (time[s[i]] == )
{
ans = s[i];
return ans;
}
} return '.';
} int main()
{
char a[MAX];
char p; while (cin >> a)
{
cout << FindChar(a)<<endl;
} system("pause");
}