题目描述

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

 

思路:

1)哪些字符只出现了一次:哈希表统计每个字符出现的次数。

2)找到第一个出现了一次的字符:从头遍历字符串的字符,判断每一个字符的次数,返回第一个次数为1的字符位置。没有则返回-1

 

 1 class Solution {
 2 public:
 3     int FirstNotRepeatingChar(string str) {
 4         // map<char, int> mp;
 5         int hash[256] = {0}; 
 6         int len = str.length();
 7         for (int i = 0; i < len; i++) {
 8             hash[str[i]]++;
 9         }
10         for (int i = 0; i < len; i++) {
11             if (hash[str[i]] == 1)
12                 return i;
13         }
14         return -1;
15     }
16 };

 

相关文章:

  • 2022-02-02
  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2021-10-21
  • 2021-08-27
猜你喜欢
  • 2021-07-04
  • 2022-03-04
  • 2022-12-23
  • 2021-08-13
  • 2021-06-13
  • 2022-01-05
相关资源
相似解决方案