剑指Offer之面试题35:第一个只出现一次的字符

C#版 - 剑指Offer 面试题35:第一个只出现一次的字符 解题报告 C#版 - 剑指Offer 面试题35:第一个只出现一次的字符 解题报告 题目描述 找出字符串中第一个只出现一次的字符 输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 示例1 输入 asdfasdfo 输出 o 思路:使用Dictionary<char, int& 阅读详情


所有代码均通过G++编译器测试,仅为练手纪录。


//面试题35:第一个只出现一次的字符。

//题目:在字符串中找出第一个只出现一次的字符。

//     如输入“abaccdeff”,则输出'b'。


//面试题35:第一个只出现一次的字符。
//题目:在字符串中找出第一个只出现一次的字符。
//     如输入“abaccdeff”,则输出'b'。

char FindFirstRepeatingChar(const string& strVal)
{
    if(strVal.empty())
    {
        return '\0';
    }
    
    const int nTableSize = 256;
    unsigned int hashTable[nTableSize] = { 0 };
    
    const char *p = strVal.c_str();
    while ('\0' != *p)
    {
        ++hashTable[*(p++)];
    }
    
    p = strVal.c_str();
    while ('\0' != *p)
    {
        if(1 == hashTable[*p])
        {
            return *p;
        }
        
        ++p;
    }
    
    return '\0';
}

void TestFindFirstRepeatingChar()
{
    string strVal = "abaccdeff";
    LogInfo("FindFirstRepeatingChar:%c",FindFirstRepeatingChar(strVal));
}




ZhaiPillary

2017-01-07


C++版 - 剑指Offer 面试题35:第一个只出现一次的字符 解题报告(华为OJ034-找出字符串中第一个只出现一次的字符) 面试题35:第一个只出现一次的字符 题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。(2006年google的一道笔试题。) 提交网址: http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187 或 http://ac.jobdu.com/p 阅读详情

相关推荐

光流法实战:如何用OpenCV的Farneback算法实现图像对齐(附调参技巧)

本文详细介绍了如何使用OpenCV的Farneback稠密光流算法实现图像对齐,包括核心原理、参数调优和工程实现。通过实战代码和参数优化策略,帮助开发者解决动态场景中的图像对齐问题,提升多帧融合和视频处理的效果。

weixin_29266007的博客 290

剑指Offer面试题35(java版):第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'. 看到这样的题目,我们最直观的想法就是从头开始扫描这个字符串中的字符。当访问某个字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符想比较,因此这种思路的时间复杂度为O(n2),面试官不会满意这种思路,它会

D.K专栏 4400

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7449

剑指offer-面试题35-第一个只出现一次的字符

题目描述:在字符串中找出第一个只出现一次的字符。比如输入abaccdeff,则输出b。题目分析:用哈希表来实现,key,value对,key是字符,value是出现的次数,循环第一遍,统计每个字符出现的次数,循环第二遍,找出第一个只出现一次的字符。//找出第一个只出现一次的字符 public static char findOneCharacter(char[] array) {

但觉 373

SVG文件上传漏洞实战:从XSS攻击到防御策略

本文深入剖析了SVG文件上传漏洞的成因与危害,揭示了攻击者如何利用SVG的XML本质构造恶意文件,绕过常规检查实现存储型XSS攻击。文章通过实战复现演示了完整的攻击链,并提供了从严格内容检查、安全解析过滤到设置CSP策略等多层次的纵深防御方案,帮助开发者从根本上加固文件上传功能。

weixin_29230805的博客 395

Jetson AGX Orin平台Jetpack5升级Jetpack6,自研载板USB不工作问题调试

1. 问题描述将AGX Orin工业的新板放到定制的载板上当在ubuntu 22和Jetpack 6.1上使用SDKManager刷机时,lsusb为空,并且在引导时没有发现/注册xusb设备。USB C端口正常打开并供电,但似乎没有数据传输。在Ubuntu 18 Jetpack 5.1.4 SDKManager上同样刷机之后,usb C集线器在引导时被正确地发现,显示在lsusb中,并识别/挂载外部驱动器。

jzwjzw19900922的博客 1509

剑指Offer---面试题35:第一个只出现一次的字符

一.题目 在一个字符串(1 二.分析 思路1: 从头到尾的扫描字符串,每扫描到一个字符,就和后面的字符进行比较,如果后面的字符串中没有出现相同的字符,那么该字符就是只出现一次的第一个字符,返回此时外层for循环的循环变量i,就是该字符的位置; 时间复杂度:o(n)^2 思路2: 1. 构造一个哈希表,Chatacteer作为key,Integer'作为value,分别表示字符

范二er 397

Briefings in Bioinformatics投稿经验分享

Briefings in Bioinformatics投稿经验分享

LiRongLu_的博客 3337

《剑指Offer》面试题35:第一个只出现一次的字符

             《剑指Offer》面试题35:第一个只出现一次的字符 知识点     如果需要判断多个字符是不是在某个字符串里出现过或者统计多个字符在某个字符串中出现的次数,我们可以考虑基于数组创建一个简单的哈希表,这样可以用很小的空间消耗换来时间效率的提升。 题目描述     在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’。 解题思路   ...

南方有乔木的博客 298

STM32实现等精度测频

上一章介绍了利用STM32的TIM的捕获功能实现频率测量的方法,但测量误差受被测信号频率的影响,不适合测量频率变化较大的。本章将介绍等精度测频的方法以及STM32的实现。STM3...

zhang062061的专栏 3457

【光子 AI 】应用 LangGraph 的核心模型和算法原理,完整实现一个极简版的 Agent 开发框架源代码,并给出具体的应用测试实际项目案例

下面给出一个“极简版 LangGraph 风格 Agent 框架”的完整可运行实现:用 有向图 + 状态(State) + 节点(Node) + 条件路由(Conditional Edge) + 循环(Loop) + Checkpoint 这一套核心模型/算法,把 Agent 组织成可编排、可测试的状态机工作流(这正是 LangGraph 的核心抽象之一:以 StateGraph 组织节点,节点读写共享状态,边做路由与循环,并支持持久化/回放)。 参考概念来源:LangGraph 官方文档对 “StateG

AI天才研究院 268

剑指Offer面试题:30.第一个只出现一次的字符

一、题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。要求时间复杂度为O(n)。   最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思...

weixin_33910137的博客 157

本文将详细介绍如何在 Qt (C++) 应用程序中集成 osgEarth,加载三维数字地球,并在指定经纬度添加三维模型(如飞机、建筑等)。

OSG 与 Qt 的交互通常需要处理 OpenGL 上下文。osgEarth 3.x 提供了对 Qt 的较好支持,或者可以使用。在普通 OSG 程序中,你需要手动处理坐标系转换将经纬度转为笛卡尔坐标 (XYZ)。这是实现的关键,将 OSG 的渲染循环集成到 Qt 的事件循环中。第三方库,但在本教程中,我们将展示一种通过继承。,将 Qt 的输入事件转换为 OSG 理解的。事件,这是实现交互(旋转地球、缩放)的基础。来嵌入 OSG 视图的标准方法。在这里我们初始化地球并添加模型。节点简化了这一过程。

qq_45859163的博客 1044

剑指offer:面试题35——第一个只出现一次的字符

剑指offer:面试题35——第一个只出现一次的字符 题目:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路:遍历一遍字符串,使用哈希表(ASCII 256位,这里用256位存储)按照字符串内对应的内容存储其字符出现的次数,然后再一次按照字符串顺序遍历哈希表,当前内容对应的位置如...

MereX的博客 654

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【一刷《剑指Offer》】面试题 35:第一个只出现一次的字符

如果需要判断多个字符是不是在某个字符串里出现过或者统计多个字符在某个字符串中出现的次数,我们可以考虑基于数组创建一个简单的哈希表,这样可以用很小的空间消耗换来时间效率的提升。例如从第一个字符串 "We are students." 中删除在第二个字符串 "aeiou" 中出现过的字符得到的结果是 "W r stdnts."。问题:在英语中,如果两个单词中出现的字母相同,并且每个字母出现的次数也相同,那么这两个单词互为变位词(Anagram)。问题:定义一个函数,删除字符串中所有重复出现的字符。

Elena's Blog 1074

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

题目给定一个字符串,求第一个不重复的字符 abbcad -> c解题思路:今天中午面试的时候第二题我的思路是从头开始扫描字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较。如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符串相比较,因此这种思路的时间复杂度为O(n^2)。这不是最好的做法,更好的做法时间复杂度应

陶程的博客 2336

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【剑指Offer】面试题35:第一个只出现一次的字符

一:题目描述 在一个字符串(1 二:解题思路 (1)遍历字符串 创建一个数组,保存a-z  A-Z出现的次数: 1.没有出现过-1 2.只出现过一次,保存在字符串中的位置 3.出现超过一次,保存-2 (二)遍历数组 找到不为-1,同时不为-2的最小的值,即第一次只出现一次的字符 如果不存在这样的字符,返回-1 三:代码实现 class Solutio

曦曦慕慕的专栏 384

剑指offer——面试题35:第一个只出现一次的字符

题目:在一个字符串(1     代码: class Solution { public: int FirstNotRepeatingChar(string str) { int index = 0; if(str.empty()) return -1; // 空字符串,返回负值 const int tablesi

denghe优快云的博客 528

【剑指Offer学习】【面试题35:第一个只出现一次的字符】

题目:在字符串中找出第一个只出现一次的字符。 解题思路:第一种:直接求解:从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路的时间复杂度是O(n^2)。 第二种:记录法

https://github.com/Wang-Jun-Chao 5248

《剑指offer》面试题35:第一个只出现一次的字符(java实现)

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). ——来源于《剑指offer》 解题思路:先遍历字符串,用一个哈希表将所有字符作为键,字符出现的次数作为值存入。然后再次遍历字符串,找到第一个值为1的字符的位置。 代码实现: public class Solution { ...

芊雨的博客 177

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

面试题35:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出’b’。 代码如下: char FirstNotRepeatingChar(char *pString) { if (pString == nullptr) return '\0'; const int tableSize = 256; unsigned int hashTable[tableSize]; for (unsigned int i = 0; i < tableSiz

m0_51955470的博客 261

剑指Offer:面试题35 第一个只出现一次的字符

/* 第一个只出现一次的字符: 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b' 分析: 直接对每个字符统计次数,用哈希做遍历,应该时间复杂度为O(n)。 寻找第一次出现的次数为1的字符时,我们按照字符顺序来遍历 题目描述: 在一个字符串(1 输入: 输入有多组数据 每一组输入一个字符串。 输出: 输出第一个只出现一次的字符下标,没有只出现一

qingyuanluofeng的专栏 724

剑指offer-面试题35:第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff",则输出'b'。 思路:这道题目不难,遍历一遍统计每个字符出现的次数就完了。作者用的是哈希表,因为只需要统计次数,而且字符只有256中,可以用一个大小为256的数组实现。自己用STL里的map容器也实现了,道理完全一样。 //哈希表实现输出第一个只出现一次的字符 char FirstNotRepeatingChar(c

moses1213的专栏 478

剑指Offer面试题35:第一个只出现一次的字符

题目:第一个只出现一次的字符         在字符中找出第一个只出现一次的字符。如输入“abaccdeff”则,输出b. 算法分析: 算法1.最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某个字符时拿这个字符和后面的每个字符相比较,如果后面没有发现重复字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思想的时间复杂度

做一名努力的通信程序员 432
上一篇: 剑指Offer之面试题34:丑数
下一篇: 剑指Offer之面试题36:数组中的逆序对
沐寒握冰
博客等级 码龄14年 57粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值