使用 C++ 在字符串中查找一个额外的字符。


假设我们有两个字符串 S 和 T,S 的长度是 n,T 的长度是 n + 1。T 将包含 S 中的所有字符,但还会包含一个额外的字符。我们的任务是使用一些有效的方法来查找额外的字符。

为了解决这个问题,我们将取一个空哈希表,并插入第二个字符串的所有字符,然后删除第一个字符串中的每个字符,剩下的字符就是额外的字符。

示例

 现场演示

#include<iostream>
#include<unordered_map>
using namespace std;
char getExtraCharacter(string S, string T) {
   unordered_map<char, int> char_map;
   for (int i = 0; i < T.length(); i++)
      char_map[T[i]]++;
   for (int i = 0; i < S.length(); i++)
      char_map[S[i]]--;
   for (auto item = char_map.begin(); item != char_map.end(); item++) {
      if (item->second == 1)
      return item->first;
   }
}
int main() {
   string S = "PQRST";
   string T = "TUQPRS";
   cout << "Extra character: " << getExtraCharacter(S, T);
}

输出

Extra character: U

更新日期:2019 年 10 月 30 日

352 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.