当前位置 博文首页 > L_add的博客:找出字符串中只出现一次的字符(C++)

    L_add的博客:找出字符串中只出现一次的字符(C++)

    作者:[db:作者] 时间:2021-08-15 22:15

    找出字符串中只出现一次的字符
    在这里插入图片描述
    题目来源:牛客
    思路:

      1. 对字符串的每一个字符进行hash映射
      1. 按顺序检测每一个字符是否只出现一次
    #include<iostream>
    #include<string>
    #include<list>
    using namespace std;
    int Hash(int key)
    {
      return key - 'a';
    }
    int FirstTimeChar(string &str)
    {
      int hashtable[26] = {0};
      //对字符串的每一个字符进行hash映射
      for(int i=0; i<str.size(); ++i)
      {
        int index = Hash(str[i]);
        hashtable[index]++;
      }
      //按顺序检测每一个字符是否只出现一次
      for(int i=0; i<str.size(); ++i)
      {
        int index = Hash(str[i]);
        if(hashtable[index] == 1)
          return str[i];
      }
      return -1;
    }
    int main()
    {
      string str;
      while(getline(cin, str))
      {
        char res = FirstTimeChar(str);
        if(res == -1)
          cout<<-1<<endl;
        else
          cout<<res<<endl;
      }
      return 0;
    }
    
    cs