找出字符串中第一个只出现一次的字符

每日一练社区 2021-08-11 11:50:17

输入描述:

输入一个非空字符串

输出描述:

输出第一个只出现一次的字符,如果不存在输出-1

示例1

输入:

asdfasdfo

输出:

o

以下程序实现了这一功能,请你补全空白处内容:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str;
    while (getline(cin, str))
    {
        int a[256] = {0};
        bool flag = false;
        for (int i = 0; i < str.size(); ++i)
            ____________________;
        for (int i = 0; i < str.size(); ++i)
        {
            if (a[str[i]] == 1)
            {
                cout << str[i] << endl;
                flag = true;
                break;
            }
        }
        if (flag == false)
            cout << "-1" << endl;
    }
    return 0;
}
...全文
995 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_72248079 2024-07-31
  • 打赏
  • 举报
回复
能选出来,但是过程不理解 没看懂怎么比较的
Top丶s 2023-08-11
  • 打赏
  • 举报
回复 1

第一个for已经完全结束,前置++ 后置++效果应该是一样的才对呀??

czy8787475 2023-02-24
  • 打赏
  • 举报
回复 1
我用vscode 调试过++在a前和后都一样的?
fenmoney 2023-07-27
  • 举报
回复 1
@czy8787475 我也认为是一样的
m0_72680969 2022-11-12
  • 打赏
  • 举报
回复
一次过
based_vision 2022-10-24
  • 打赏
  • 举报
回复
输出第一个只出现一次的字符这里代码没有体现吧,它输出的是阿斯卡代码里最靠前的只出现一次的字符
Binary_Hp 2022-10-13
  • 打赏
  • 举报
回复
有趣的写法,确实第一次选了后置自增,提示错误,于是选了前置自增,但我想在这里前置自增和后置自增都没问题,只有性能的区别。
czy8787475 2023-02-24
  • 举报
回复
@Binary_Hp 性能有什么区别?
  • 打赏
  • 举报
回复 2
题的思路就是:(阿斯克码)(英文忘记),所以定义了256长度的数组,输入的字符串中出现一次就在对应的位置加一,所以就可以得到结果。就是我开始选的后加加,不知道为什么不行。答案是前加加。
0oOOvo 2022-07-24
  • 打赏
  • 举报
回复 1
哦哦哦,每个字符对应一个ascll码,ascll作为a数组的索引,出现一次的字母对应的a数组元素就是1,其他就至少是2
weixin_41725012 2022-03-20
  • 打赏
  • 举报
回复
字符只有256个吧吗?ASCII码是,但其他编码不是,比如unicode
  • 打赏
  • 举报
回复
CD都行啊,中间有一个把字符当数字用,所以a定义了256个
YYY__77 2022-03-02
  • 打赏
  • 举报
回复 3
没看懂呀,有人解释一下吗
weixin_44757985 2022-02-24
  • 打赏
  • 举报
回复 2

确实前置版本和后置版本都可以

琅琊343 2022-02-22
  • 打赏
  • 举报
回复 1
为什么要自增不理解
weixin_39677082 2022-02-19
  • 打赏
  • 举报
回复 1
题有问题,前置和后置都可以的
要永遠相信光 2022-01-10
  • 打赏
  • 举报
回复
前置++和后置++都可以,只是效率的不同。但答案确实前置++。
Magic Hertha 2021-12-29
  • 打赏
  • 举报
回复
求大佬讲解一下
主持人 小五 2021-12-13
  • 打赏
  • 举报
回复 4
我是真没看懂,咋没比较呢
内容概要:本文系统介绍了Ćuk转换器的工作原理及其在Simulink环境下的建模与仿真实现方法,重点阐述了该转换器如何实现输入直流电压到极性相反的输出直流电压的能量转换。内容涵盖电路拓扑结构、工作模式分析(连续导通模式与断续导通模式)、关键元器件(如电感、电容、开关管和二极管)的参数设计原则,以及仿真模型的构建步骤与动态响应特性分析,深入揭示其能量传递机制和电压反转特性。此外,文档还整合了多个科研方向的Matlab/Simulink代码实现案例,涉及智能优化算法、机器学习、电力系统优化、信号处理、路径规划、通信技术等多个领域,充分展示了仿真工具在现代科研的广泛应用价值和技术交叉潜力。; 适合人群:电气工程、自动化、控制科学与工程、电力电子及相关专业的本科生、研究生、科研人员及工程技术人员,尤其适合具备电路理论基础和一定Matlab/Simulink操作经验的学习者; 使用场景及目标:①用于深入理解Ćuk转换器的拓扑结构与工作机理,掌握其建模与仿真方法;②作为电力电子课程教学或科研项目的实践参考;③结合文丰富的跨学科科研案例,拓展研究视野,辅助论文复现与创新课题设计; 阅读建议:此资源以仿真实践为核心导向,建议读者在学习过程同步搭建并调试Simulink模型,细致观察系统参数变化对输出性能的影响,并积极借鉴其他科研方向的技术路线,推动多领域融合创新研究。

11,880

社区成员

发帖
与我相关
我的任务
社区描述
Study well and make progress every day
其他 企业社区
社区管理员
  • 每日一练社区
  • CSDN学习
  • 幻灰龙
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧