zoukankan      html  css  js  c++  java
  • 剑指offer33-第一个只出现一次的字符

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

    思路:map存储字符出现次数

        int FirstNotRepeatingChar(string str) {
            //if(m.empty())return -1;
            std::map<char,int>m;
           // std::map<char,int>num;
            int n=0;
            for(int i=0;i<str.size();i++)
            {
                if(m.find(str[i])!=m.end())
                {
                    m[str[i]]++;
                }else
                {
                    m.insert(pair<char,int>(str[i],1));

                }
            }
             for(int i=0;i<str.size();i++)
                {
                  if(m[str[i]]==1)
                  {
                    return i;
                  }
                }
            return -1;
        }

  • 相关阅读:
    luogu 2962 [USACO09NOV]灯Lights
    bzoj 1923
    bzoj 1013
    bzoj 3513
    bzoj 4259
    bzoj 4503
    CF 632E
    bzoj 3527
    bzoj 3160
    bzoj 2179
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12976625.html
Copyright © 2011-2022 走看看