代码解析:

使用了哈希表 unordered_map 来统计每个字符的出现次数。

首先,定义了一个函数 findFirstUniqueChar,它的输入参数是一个字符串 s,表示要查找的字符串。函数返回第一个仅出现一次的字符。

在函数内部,创建了一个哈希表 count,用于存储每个字符的出现次数。然后,使用一个循环遍历字符串 s 中的每个字符,并在哈希表 count 中增加对应字符的计数。

接下来,再次遍历字符串 s 中的每个字符,对于每个字符,检查其在哈希表 count 中的计数。如果计数为1,则说明该字符是第一个仅出现一次的字符,立即返回该字符。

如果没有找到仅出现一次的字符,那么最后返回一个特定的标记字符 'no',表示没有出现次数只有一次的字符。

在 main 函数中,我们首先读入输入的字符串 s。

然后,我们调用 findFirstUniqueChar 函数来查找第一个仅出现一次的字符,并将结果存储在变量 result 中。

最后,我们输出结果字符 result。



参考代码:

#include <iostream>

#include <string>

#include <unordered_map>

using namespace std;


char findFirstUniqueChar(const string& s) {

    unordered_map<char, int> count;


    // 统计每个字符的出现次数

    for (char ch : s) {

        count[ch]++;

    }


    // 找到第一个仅出现一次的字符

    for (char ch : s) {

        if (count[ch] == 1) {

            return ch;

        }

    }


    return 'no';

}


int main() {

    string s;

    cin >> s;


    char result = findFirstUniqueChar(s);


    cout << result << endl;


    return 0;

}


点赞(1)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

灵笼 7月前 回复TA
#include <iostream>
#include <cstring>
using namespace std;

int main()
{	
	char ch[100000];
	int x, a[26] = { 0 }, y = 1;
	cin >> ch;
	x = strlen(ch);
	for (int j = 0; j < x; j++)
	{
		a[ch[j] - 97]++;
	}
	for (int i = 0; i < 26; i++)
	{
		if (a[i] == 1)
		{
			cout << ch[i];
			break;
		}
	}
	if (y == 0)
	{
		cout << "no";
	}
	return 0;
}这个哪里出问题了啊?
一只猪 8月前 回复TA
@会说C语言的萝卜 set是键值的排序哦 map是键值对
会说C语言的萝卜 9月前 回复TA
用std::unordered_set也可以实现吧
一只猪 10月前 回复TA
@悟空 题目中的描述是,没有就返回no
悟空 10月前 回复TA
return 'no';  应该不对吧
一只猪 1年前 回复TA
代码已经改正