使用 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
广告