【简单】面试题50. 第一个只出现一次的字符(*)

50. 第一个只出现一次的字符 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。s 只包含小写字母。来统计每个字符出现的次数,然后再遍历一遍字符串,找到第一个出现次数为。输入:s = "abaccdeff"我们可以使用哈希表或数组。为字符集大小,本题中。 阅读详情

【题目】
在字符串 s 中找出第一个只出现一次的字符,如果没有,返回一个单空格,s 只包含小写字母。您返回的结果必须是这几个值中的一个 {“Sunday”,
来源:leetcode
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/
【示例】
s = “abaccdeff”
返回 “b”
【示例2】
s = “”
返回 " "
【代码】

class Solution {
public:
    char firstUniqChar(string s) {
        if(s=="")
            return ' ';
        s+=" ";
        int len=s.size();
        for(int i=0;i<len;i++)
            if(s.find(s[i],i+1)==-1&&s.find(s[i])==i)
                return s[i];        
        return ' ';
    }
};

【方法二】

class Solution {
private:
    map<char,int> m;
public:
    char firstUniqChar(string s) {
       for(auto x:s)
            m[x]++;
        for(auto x:s)
            if(m[x]==1)
                return x;
        return ' ';
    }
};

【方法三】

static int n=[](){
 
    std::ios::sync_with_stdio(false);
 
    std::cin.tie(nullptr);
 
    return 0;
 
}();
class Solution {
private:
    const static int SIZE = 26;
    // 第一次出现的位置
    int firstIndex[SIZE];
public:
    char firstUniqChar(string s) {
        if (s == "") {
            return ' ';
        }
        // 初始化
        memset(firstIndex, -1, SIZE * sizeof(int));
        for (int i = 0 ; i < s.size() ; i ++) {
            // 如果没有出现过
            if (firstIndex[s[i] - 'a'] < 0) {
                firstIndex[s[i] - 'a'] = i;
            } else {
                // 出现过的话,将下标置为max
                firstIndex[s[i] - 'a'] = INT_MAX;
            }
        }
        int resutIndex = INT_MAX;
        char resultChar;
        for (int i = 0 ; i < SIZE ; i ++) {
            if (firstIndex[i] < resutIndex && firstIndex[i] >= 0) {
                resutIndex = firstIndex[i];
                resultChar = 'a' + i;
            }
        }
        if (resutIndex == INT_MAX) {
            return ' ';
        }
        return resultChar;
    }
};
fpga学习——zynq图像处理中的DVP流接口封装 之前文章介绍了基于zynq的图像处理架构问题。其中,作为开发者,需要重点关注图像传感器接口、处理算法、显示接口,这些模块。现在我们一同学习用于视频数据接口的DVP模块,并将其封装成AXI-stream接口便于直接和VDMA IP通信。 DVP_AXI stream IP v1.0使用说明 1.设计概述 •用于cmos传感器视频数据采集,将cmos输出的8位视频数据拼接成RGB 565模式 •AXI_stream主机接口,用于和PS端内存的数据交互 •基于vivado 18.3软件设计 2.模块分析 阅读详情

相关推荐

RGB接口电容触摸屏驱动(一)模块介绍

RGB接口电容触摸屏驱动(一)模块介绍

杰克拉力船长个人博客 7880

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

利用LinkedHashMap查找结果

LPL0129的博客 478

双参数威布尔分布(Weibull分布)参数计算(根据故障数据,求双参数威布尔分布的参数详细步骤)

根据故障数据求威布尔分布参数步骤 根据众多文献研究,设备故障数据大多服从指数分布、威布尔分布或对数正态分布。其中威布尔分布较为常用,本文主要介绍威布尔分布的简单应用,并根据某设备故障数据为例简单介绍威布尔分布参数的计算方法。 参考文献11参考文献22 1.双参数威布尔分布的概率密度函数、概率分布函数、可靠度函数: 2.预处理故障数据 将故障数据按时间排序,假设设备分别在以下时间点失效:11.1 、23.5、58.4……则将此时间从小到大排序。并计算中位秩。中位秩的计算公式如下: 其中i表示第几个数据,n

biaochengxiaobai的博客 4万+

面试题50. 第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例: s = "abaccdeff" 返回 "b" s = "" 返回 " " 思路:没啥好说的,直接上哈希表就可以了。key是字符,value是出现的次数,遍历哈希表查看value是1的字符。如果存在就返回字符,否则就返回空格。这个题目有两种解法:第一种是有序的哈希表,传统上的哈希表,统计出现的次数。第二种是非传统的哈希表,它的value都是布尔值,如果第一次出现给它设为True,如果出现两次及以上

奥古斯都 387

别再手动建模了!用Simscape Multibody Link一键导入SolidWorks装配体到Simulink

本文介绍了如何利用Simscape Multibody Link插件将SolidWorks装配体一键导入Simulink,实现CAD到仿真的无缝衔接。该技术显著提升机械系统设计与控制效率,特别适用于工业机器人、车辆悬架等复杂机构的动力学分析。文章详细解析了插件安装、模型导出优化及仿真验证的全流程,帮助工程师摆脱手动建模的低效工作模式。

weixin_27256197的博客 463

QT绘制饼图+柱状图+折线图

使用qt绘制,折线图,饼图,柱状图,多柱状图

梅山 3879

第一个只出现一次的字符

一、需求 在字符串 s 中找出第一个只出现一次的字符。 如果没有,返回一个单空格。 s 只包含小写字母。 二、有序哈希表 2.1 思路分析 相比于HashMap,LinkedHashMap是有序的,其元素排列顺序与插入元素的顺序一致,我们使用它来存储字符-字符个数; 将字符串转换成字符数组,然后从第一个字符开始遍历,判断哈希表是否包含该字符,包含则更新当前字符的value为2,因为我们要找的是value为1的,故为了方便,凡是重复的字符,value统一更新为2,若哈希表不包含该字符,那么加入哈希.

皮卡qiu~的博客 362

【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换

由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果: 在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl

智慧空间实验室 3816

LeetCode——剑指 Offer 50. 第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 先创建一个长度为

weixin_45962741的博客 105

《Python等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级谁》Python编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,限时9.9元,欢迎订阅!

人生就是一个不断学习的过程 1885

040、全志V853低功耗AI视觉平台的ISP调优——电池供电场景下的画质与功耗平衡

本文分享了全志V853 AI视觉平台在电池供电场景下的ISP调优经验。作者通过实际项目踩坑案例,揭示了V853 ISP的特殊性:不同于主流平台,其ISP与CPU共享时钟域,降噪能力有限,需特别注意功耗控制。关键优化策略包括:关闭无效ISP模块、优化Sensor联动时钟、采用场景自适应配置、开发快速启动模式等。特别指出V853个体差异大,量产需考虑高低温影响。文章强调V853的ISP功耗优化需从寄存器级别精打细算,不能简单套用其他平台经验,建议选型时单独评估ISP功耗,避免续航缩水。

zzfmlxs的博客 27

面试题50:第一个只出现一次的字符---字符流中第一个不重复的字符

题目描述 面试题50:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题目分析 1.使用哈希表来记录每个字符出现的次数,因为字符charchar为8位,总共有256个值,所有哈希表有256个元素,其中把字符的ASCIIASCII码作为哈希表的键值,而对应键值储存的是该字符出现的次数。...

weixin_43892514的博客 1509

OAuth2.0集成SpringSecurity加JWT实现单点登录

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以

Nicky's blog 9039

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

welcome to my blog 剑指offer面试题50(java版):第一个只出现一次的字符 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路 使用哈希表实现, 扫描两次字符串, 第一次统计次数, 第二次找到第一个出现次数为1的字符串 笔记 为什么要用Li...

littlehaes的博客 519

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

面试题50-第一个只出现一次的字符

题目一 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。 解题思路 建立一个哈希表,第一次扫描的时候,统计每个字符的出现次数。第二次扫描的时候,如果该字符出现的次数为1,则返回这个字符的位置。 C++实现 class Solution { public: char FirstNotRepeatingChar(char*pString) { if(pString==nullptr) return '\0'; const

weixin_42127177的博客 1118

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java详解剑指offer面试题50--第一个只出现一次的字符

Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入“abacceff",则输出'b' 要想知道某个字符是不是只出现了一次,必须遍历字符串的每个字符。**因此可以先遍历一次,统计每个字符出现次数。再遍历一次,遇到某个字符出现字符为1就立即返回。**统计每个字符出现次数,可以用哈希表,不过如果输入中都是ASCII码,那么使用0-255表示即可。这样使用一个int[] count = new int[256]就能代替哈希表了,以count[some

快乐李同学的博客 622

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

题目一: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解题思路:这里应该是考察set,map,unordered_set,unordered_map,multiset,multimap等容器的用法。 set和multiset会根据特定...

freeygh的博客 209

leetcode--面试题50. 第一个只出现一次的字符

面试题50. 第一个只出现一次的字符 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 思路一:哈希表法 class Solution { public: char firstUniqChar(string s) { ...

u011861832的博客 851

【Java】面试题50:第一个只出现一次的字符

题目: 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出’b’。 第一思路:借助于数组来做。 开辟一个长度为26的数组,用来存放字符串中每个字符出现的次数。这样第一次扫描去统计这个字符串中字符出现的次数,第二次去统计第一个出现结果为1的次数,并输出对应的字符。 package jianZhiOffer; import java.util.HashMap; import ...

小小核桃 304

面试题50:第一个只出现一次的字符

题目: 字符串中第一个只出现一次的字符。 在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出b。 分析: 最直观的想法是从头开始向后扫描,如果某个字符,在后面没有发现重复的,并且是第一个,那么该字符就是第一个只出现一次的字符,时间复杂度O(n²),不是最佳的解决方案。 创建一个256大小的int数组,统计字符串中每个字符出现的次数,最后根据字符串的顺序查找每个字符...

王劭阳的博客 235

LeetCode 面试题50. 第一个只出现一次的字符

我的LeetCode:https://leetcode-cn.com/u/ituring/ 我的LeetCode刷题源码[GitHub]:https://github.com/izhoujie/Algorithmcii LeetCode 面试题50. 第一个只出现一次的字符 题目 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: `` s = "abaccdeff"...

iTuring_Zhou的专栏 76

面试题50.第一个只出现一次的字符

面试题50.第一个只出现一次的字符 题目描述 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 题解1 借助双列集合HashMap,将字符串转换成字符数组后遍历字符数组并加入集合中,加入的同时,判断是否已经加入过,如果是,则将值置为2,...

weixin_44458246的博客 195

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

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

ProgramNovice的博客 559
上一篇: 【简单】1185. 一周中的第几天
下一篇: 【简单】119. 杨辉三角 II
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值