通知
关于网站更多信息请加whimurmur模板/jpress插件QQ群(1061691290)            jpress从3.x升级到4.x,显示有些问题,慢慢修复中

第一个只出现一次的字符

478人浏览 / 0人评论 / | 作者:whisper  | 分类: 数据结构-字符串  | 标签: 数据结构-字符串  | 

作者:whisper

链接:https://www.proprogrammar.com/article/886

声明:请尊重原作者的劳动,如需转载请注明出处


这个题很简单,但代码中能学到一些东西,比如数组的嵌套使用,小写字母使用int[128](ascii数量),int[26](26个小写字母)定义,字符串问题常用数组来解决


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

示例:

s = "abaccdeff"
返回 "b"

s = "" 
返回 " "

C++解法

char firstUniqChar(string s) {
        char res = ' ';
        if(s.empty())return res;
        int cs[128] = {0};
        int index[26] = {0};
        int seq = 0;
        
        for(int i = 0; i < s.size(); i++){
            if(!cs[s.at(i)])index[seq++] = s.at(i);
            cs[s.at(i)]++;
        }
        for(int i = 0; i < seq; i++){
            if(cs[index[i]] == 1){
                res = index[i];
                break;
            }
        }

        return res;
    }
};

两个数组变量,cs存出现次数,index顺序存第一次出现字符,如果按顺序出现的字符只出现一次,那么break并return


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!
广告位-帮帮忙点下广告