题目描述:
输入一个非空字符串,输出该字符串第一个只出现一次的字符。若不存在,则输出-1。
解题思路:
我们需要统计字符出现的次数,然后输出第一个只出现一次的字符。本体的关键在于如何保存每个字符出现的次数。
char[256] = { 0 }
,然后利用该数组来保存字符出现的次数。代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while (cin >> str) //输入字符串
{
int flag = 1; //标志位
int i = 0;
int a[256] = { 0 }; //该数组用来存储字符出现的次数
//统计字符出现的次数 注意:a[str[i]]:str[i]为字符,数组下标可以使用字符。
for (i = 0; i < str.size(); i++)
{
a[str[i]]+=1;
}
//按照次序从前往后找只出现一次的字符
for (i = 0; i < str.size(); i++)
{
if (a[str[i]] == 1)
{
cout << str[i] << endl;
flag = 0; //找到将标志位置为0
break; //直接退出循环
}
}
//若没找到输出-1
if (flag)
{
cout << -1 << endl;
}
}
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务