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