题目:找出字符串中第一个只出现一次的字符
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例1:
输入
asdfasdfo
输出
o
分析:
方法(1):用map求解
void first_one(string& s)
{
map<char, int> m;
for (int i = 0; i < s.size(); i++)
{
m[s[i]]++;
}
for (int i = 0; i < s.size(); i++)
{
if (m[s[i]] == 1)
{
cout << s[i] << endl;
return;
}
}
cout << -1 << endl;
}
方法(2):自己做每个字母的类似哈希映射
//自己做每个字母的类似哈希映射
void first_one1(string& s)
{
int count[256] = { 0 };//存储256个字符每个字符出现的次数
for (int i = 0; i < s.size(); i++)
{
count[s[i]]++;
}
for (int i = 0; i < s.size(); i++)
{
if (count[s[i]] == 1)
{
cout << s[i] << endl;
return;
}
}
cout << -1 << endl;
}