c++ 信奥编程 1130:找第一个只出现一次的字符

cpp 复制代码
#include <iostream>
#include <string> 
using namespace std; 
int main()
{
	string s;
	bool flag=false;
	int lt[26]={0}; 
	cin >> s;
	for(int i=0;s[i]!='\0';i++)
	{ 
		lt[s[i]-'a']++;
	} 
	
	for(int i=0;i<s.size();i++)
	{
		if(lt[s[i]-'a']==1)
		{
			cout << s[i] << endl;
			flag=true;
			break;
		}
	}
	if(flag==false)
		cout << "no" << endl;
    return 0;
} 

本题解析:本题用到了一个技巧,那就是小写字母只有26个,然后遍历字符串,定义一个整数数组,用来存储从小写a开始的字母出现的次数。如果找到第一个就break,结束循环。另外还需要设置一个标识位。用来做标记。

本题用到的知识有:字符可以参与数字计算,字符串的遍历,一维数组的应用,同时对for循环的用法,以及终止循环的条件等相关知识。

相关推荐
众链网络7 小时前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能
Wang's Blog7 小时前
Java 项目部署之 Docker工具快速入门: 镜像命令从 pull 到 load 的完整实操
java·开发语言·docker
Wang's Blog8 小时前
Java 项目部署之 Docker工具快速入门: Docker 数据卷命令与挂载实操
java·开发语言·docker
熊猫钓鱼>_>8 小时前
面试出现 606 次的第 K 大,被拆成三个问题问
算法·面试·职场和发展·校招·面经·oj·ai生成
Lzg_na8 小时前
僵尸进程、孤儿进程、守护进程:含义、区别与生命周期详解
c++
云和数据.ChenGuang8 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
java·人工智能·spring boot·后端·重构·springai
霸道流氓气质8 小时前
AI 应用异常检测与根因分析:语义漂移检测、因果图推理与LLM-as-Judge的 Java 生产级实现
java·开发语言·人工智能
zhanghaha13148 小时前
C++ 的类是什么(新手保姆讲解,配合 Qt 对照理解)
c++
xuxigifxfh8 小时前
牛客:BISHI2 【模板】栈的操作
java·开发语言·windows·算法
aqiu1111118 小时前
【C++算法打怪专栏】LeetCode 402. 移掉 K 位数字(单调栈 + 贪心)
c++·算法·leetcode