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

以上是 使用C ++在字符串中查找一个额外的字符。 的全部内容, 来源链接: utcz.com/z/355617.html

回到顶部