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

每日一练社区 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;
}
...全文
969 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
我是真没看懂,咋没比较呢
源码链接: https://pan.quark.cn/s/53617c93469f IGES(Initial Graphics Exchange Specification)是一种开放性的标准格式,用于在不同CAD(计算机辅助设计)系统之间进行数据交换。该格式支持用户在不同软件平台之间传输3D几何模型,进而达成跨平台的设计共享与协同作业。IGES查看器是专门设计用来处理这些IGES文件的工具,而“IGES查看器”即是一个应用程序,它能够协助用户直接打开并检视IGES或igs(IGES的文件扩展名)文件。在CAD领域,数据交换是一项核心议题,因为不同的设计软件通常采用各自独有的专有格式来储存几何数据。IGES格式的问世,有效应对了这一问题,使得数据能够在Autodesk的AutoCAD、SolidWorks、CATIA、UGS NX等多种CAD软件之间进行传输。这种格式能够兼容多种3D几何类型,涵盖线框、曲面以及实体模型,同时还包括注释、尺寸和其他非几何信息。“IGES查看器”作为一个独立的应用程序,其主要功能涵盖以下方面:1. **文件打开与浏览**:用户可借助该工具直接打开IGES或igs文件,无需借助原始的CAD软件。这对于未安装CAD软件或需要迅速预览模型的用户而言极为便利。2. **3D模型显示**:它能够展示IGES文件的3D几何模型,包括线框、曲面和实体,用户可从多个视角检视模型,并调整旋转、平移和缩放,以获得全面的视觉感受。3. **视图操作**:提供多样化的视图控制选项,如正视图、侧视图、俯视图,以及自由视角,帮助用户更清晰地理解模型结构。4. **模型分析**:可能包含测量功能,例如长度、宽度、高度的测量,或角度、距离的计算,便于对模型...
内容概要:本文围绕一篇发表于超级顶刊TAC的长文展开复现研究,聚焦于线性二次型调节器(LQR)的直接自适应学习方法,提出了一种数据驱动的策略优化框架。该研究摆脱了传统控制方法对精确系统模型的依赖,通过引入在线数据进行策略迭代与优化,实现了在未知或部分已知动态系统下的高性能控制。文详细阐述了算法的设计原理、收敛性分析及其实现流程,并提供了完整的Matlab代码实现,便于读者验证与进一步拓展。研究体现了现代控制理论向数据驱动、自适应方向发展的趋势,具有较强的理论深度与工程应用价值。; 适合人群:具备自动控制理论基础、优化算法背景及Matlab编程能力的研究生、博士生及从事控制领域科研工作的工程师,尤其适合致力于自适应控制、强化学习与最优控制交叉方向的研究者。; 使用场景及目标:①深入理解LQR问题的数据驱动求解范式;②掌握策略迭代、自适应动态规划在最优控制的实现方法;③复现顶刊成果,支撑高水平论文写作与科研项目申报;④为复杂系统无模型控制提供技术储备与实践参考。; 阅读建议:建议读者结合TAC原文进行对照学习,重点关注算法推导与代码实现之间的映射关系,动手调试代码以加深对参数设置、收敛条件及数值稳定性的理解,同时可尝试将其迁移至其他控制任务进行验证与改进。
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 连续投影算法(Sequential Projection Algorithm, SAP)属于一种在线性降维领域的高维数据分析技术,其目的是寻找低维子空间,并且这种技术经常被应用于特征选择和数据可视化等场景。MATLAB作为一个功能强大的数值计算和科学计算平台,是执行此类算法的一个非常适合的环境。在此压缩包,包含了基于MATLAB的SAP算法的具体实现,用户需要先将要处理的数据存入Excel文件,然后通过执行MATLAB程序来启动计算过程。SAP算法的核心概念在于采用迭代方法,每一次迭代都会挑选一个与当前子空间正交的新向量,以此来逐步构建出一个低维的投影空间。这个迭代过程会持续进行,直到所有关键特征都被纳入考虑范围或者达到了事先设定的降维标准。SAP算法的一个显著好处在于其操作简便和运行高效,能够在尽可能保留原始信息的前提下,有效降低计算的复杂度。在MATLAB程序运用SAP算法通常需要遵循以下几个步骤:1. **数据准备**:用户必须在Excel正确地组织数据,确保所有数据都是数值型的,并且每个样本数据应该分布在不同的列,每行则对应一个特征。2. **数据导入**:在MATLAB环境,用户可以利用`readtable`或`xlsread`等函数来导入存储在Excel文件的数据。3. **调用SAP函数**:用户需要执行专门为SAP算法编写的MATLAB函数,并将数据矩阵作为参数传递给该函数。函数内部会进行一系列迭代计算,以确定最佳的低维投影方案。4. **结果分析**:在计算完成后,SAP函数会输出一个已经降维的数据矩阵,这个矩阵可以用来进行后续的数据分析、模型...

11,853

社区成员

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

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