一本通网站1130:找第一个只出现一次的字符

一开始我的想法是利用桶的思想,定义一个26大小的数组,对应字母a到z,然后遍历字符串,让数组对应位置里的值加一,最后统计出每个字母出现的次数,然后遍历arr数组,找到大小为1的,就是仅出现一次的字符。

但是发现程序还是不行。然后发现这时会出现次序问题,题目中要求的是第一次出现仅一次的。那么我们可以再遍历一遍字符串,然后找到数量为1的,自然就是第一次出现并且仅出现一次的字符了。并且题目说了字符串长度小于100000,两次都是单层循环,时间也是没什么问题的。

cpp 复制代码
#include<iostream>
using namespace std;
#include<string>
int main()
{
	string s1;
	getline(cin, s1);
	int arr[26] = { 0 };
	for (int i = 0; i < 26; i++)
	{
		arr[i] = 0;
	}
	int num = 0;
	for (int i = 0; i < s1.length(); i++)
	{
		num = s1[i] - 97;
		arr[num] += 1;
	}
	bool flag = 0;
	for (int i = 0; i < s1.length(); i++)
	{
		if (arr[s1[i] - 97] == 1)
		{
			cout << s1[i];
			flag = 1;
			break;
		}
	}
	if (!flag) {
		cout << "no";
	}

}
相关推荐
博客18003 小时前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴4 小时前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
复杂网络4 小时前
论最小 Agent 计算机的形态
算法
kisshyshy20 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
众少成多积小致巨1 天前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
猿人谷1 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络1 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络1 天前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4001 天前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4001 天前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法