在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b

题目很简单

用一个int 数组,全部初始化为-1.

遍历字符串,如果值为-1,就将值改为字符串的下标,否则设为-2

然后再扫描一遍这个数组,找到大于等于0并且最小值即可

有一种方法只要扫描一遍。

 GetFirstOnce(const char* szString)
{assert(NULL != szString);int ChrToFreq[256];memset(ChrToFreq, 0, sizeof(ChrToFreq));char OrderToChr[256];//记录字符第一次出现的次序memset(OrderToChr, 0, sizeof(OrderToChr));int nIter = 0;int nRet = 0;//指向至今为止,第一次只出现一次的字符while (0 != *szString){ChrToFreq[*szString]++;if (1 == ChrToFreq[*szString])OrderToChr[nIter++] = *szString;while(nRet < nIter && ChrToFreq[OrderToChr[nRet]] > 1) nRet++;szString++;}if (nRet == nIter) return 0;return OrderToChr[nRet];
}

找出第一个只出现一次的字符相关推荐

  1. 在字符串中找出第一个只出现一次的字符,Python实现

    要求: 1. 不能依赖库函数直接实现此功能,需使用基础的数据结构实现 2. 时间复杂度 O(n) 思路: 1. 用字典存储每个字符在字符串中出现的次数 2. 列表是有序的,用来存储字符的出现先后 3. ...

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

    如输入一个字符串char* s ="abcdacfgb",最终输出'd'. 方法一: 可以创建两个指针i,j,定义计数变量int count = 0: 起点均为s[0],j先行, ...

  3. 面试题之在字符串中查找出第一个只出现一次的字符的位置

    样例:比如"abcdabc",第一个只出现一次的字符为d,位置为3 解决方案1:O(n*n)的复杂度 遍历字符串中的每个字符,然后用该字符在字符串中进行查找,如果没有找到和当前字符 ...

  4. 找第一个只出现一次的字符_leetcode哈希表之第一个只出现一次的字符

    序 本文主要记录一下leetcode哈希表之第一个只出现一次的字符 题目 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abac ...

  5. 《剑指offer》第五十题(字符串中第一个只出现一次的字符)

    // 面试题50(一):字符串中第一个只出现一次的字符 // 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出 // 'b'. #include & ...

  6. 剑指Offer(java版):第一个只出现一次的字符

    2019独角兽企业重金招聘Python工程师标准>>> 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'. 看到这样的题目, ...

  7. [剑指offer]面试题35:第一个只出现一次的字符

    面试题35:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'. 代码如下: char FirstNotRepeatin ...

  8. 数据结构与算法--第一个只出现一次的字符

    第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符,比如输入"wersdfxvsdfwer",则输出x. 方法一: 还是老规矩,初始想法是从头遍历每一个字符,每遍历 ...

  9. [剑指offer]面试题第[50]题[JAVA][第一个只出现一次的字符][哈希表][HashMap]

    [问题描述][简单] 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abaccdeff" 返回 "b&quo ...

最新文章

  1. hadoop 1.0.1集群安装及配置
  2. springboot项目打包运行
  3. 奥比中光大白(3D结构光)摄像头测试发现对着灯光过曝问题
  4. 持续5个月,200+笔记,3千多人参与,邀请你来学源码~
  5. phpstorm设置 打开文件所在目录_PDF文件在线分享并设置打开次数
  6. 20169210《Linux内核原理与分析》第十二周作业
  7. android自定义更新,Android 完美解决自定义preference与ActivityGroup UI更新的问题
  8. redmine一键安装
  9. CSS基础之清除浮动
  10. C++模板元编程---折叠表达式
  11. 如何硬盘安装windows server 2008和windows7
  12. 【分享】学长的安利来了~~O(∩_∩)O
  13. sx1278lora模块的常见问题解答
  14. c语言代码存放的区域 堆栈,C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)...
  15. 怎么查看拼多多店铺销量?怎么查看店铺后台数据图?
  16. Java中Object类
  17. python-函数的递归
  18. 更适合手写的办公本,办公参会时的效率神器,MAXHUB领效M6 Pro上手
  19. 函数的调用和参数传递
  20. MySQL所有问答题

热门文章

  1. Mybatis源码解析-sql执行
  2. 八十七、探究最短路问题:Dijkstra算法
  3. linux mysql 指令无效_linux下安装mysql,mysql命令失效的原因
  4. 成都内推 | 腾讯游戏王者荣耀算法团队招聘算法实习生
  5. 物体检测轻松上手:精度与速度实现兼得
  6. CVPR 2021 | 五官复原效果惊艳,腾讯ARC利用GAN人脸先验来解决
  7. 实战分享之专业领域词汇无监督挖掘
  8. 清华大学冯珺:基于强化学习的关系抽取和文本分类 | 实录·PhD Talk
  9. 零基础实践深度学习之数学基础
  10. node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用