使用 C++ 找出字符串中的第一个重复字符。


假设我们有一个字符串;我们必须找到第一个重复的字符。因此,如果字符串是“Hello Friends”,则第一个重复的字符将是 l。因为一个 l 在另一个 l 之后。

为了解决此问题,我们将使用散列技术。创建一个散列表,逐个扫描每个字符,如果字符不存在,则将其插入散列表,如果它已经存在,则返回该字符。

示例

 在线演示

#include<iostream>
#include<unordered_set>
using namespace std;
char getFirstRepeatingChar(string &s) {
   unordered_set<char> hash;
   for (int i=0; i<s.length(); i++) {
      char c = s[i];
      if (hash.find(c) != hash.end())
         return c;
      else
         hash.insert(c);
   }
   return '\0';
}
int main () {
   string str = "Hello Friends";
   cout << "First repeating character is: " << getFirstRepeatingChar(str);
}

输出

First repeating character is: l

更新于: 2019 年 10 月 30 日

1 千次以上浏览

开启你的 职业生涯

完成课程获得认证

开始
广告