題目:找出字元串中第一個隻出現一次的字元
輸入描述:
輸入一個非空字元串
輸出描述:
輸出第一個隻出現一次的字元,如果不存在輸出-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;
}