第一个只出现一次的字符

  1. 题目描述

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

class Solution {
public:
    /*在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,
    并返回它的位置, 如果没有则返回 -1(需要区分大小写).*/
    int FirstNotRepeatingChar(string str) {
        // 空字符串处理
        if (str.length() == 0){
            return -1;
        }
        // 遍历,求每个字符出现的频率
        int chars[127] = {0};
        for (int i = 0;i < str.length();++i){
            chars[str[i]]++;
        }
        // 遍历,求第一个只出现1次的字符
        for (int i = 0;i < str.length();++i){
            if (chars[str[i]] ==1){
                return i;
            }
        }
        // 不存在这样的字符
        return -1;
    }
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:第一个只出现一次的字符

Count:223

Author:攀登

Created At:2019-12-26, 23:09:06

Updated At:2024-06-15, 15:53:35

Url:http://jiafeimao-gjf.github.io/2019/12/26/sword-the-first-once-appeared-char/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation