C ++を使用したSTL関数を使用して、std::vector内の重複する単語を検索して印刷します。
文字列のリストがあると考えてください。リストに重複する文字列がいくつかあります。どの文字列が複数回発生しているかを確認する必要があります。文字列リストが[“ Hello”、“ Kite”、“ Hello”、“ C ++”、“ Tom”、“ C ++”]
のようなものであるとします。ここではハッシュ手法を使用するため、空のハッシュテーブルを作成し、各文字列をトラバースします。各文字列について、sはすでにハッシュに存在し、文字列を表示します。それ以外の場合は、ハッシュに挿入します。
例
#include<iostream>
#include<vector>
#include<unordered_set>
using namespace std;
void displayDupliateStrings(vector<string> strings) {
unordered_set<string> s;
bool hasDuplicate = false;
for (int i = 0; i<strings.size(); i++) {
if (s.find(strings[i]) != s.end()) {
cout << strings[i] << endl;
hasDuplicate = true;
}
else
s.insert(strings[i]);
}
if (!hasDuplicate)
cout << "No Duplicate string has found" << endl;
}
int main() {
vector<string>strings{"Hello", "Kite", "Hello", "C++", "Tom", "C++"};
displayDupliateStrings(strings);
} 出力
Hello C++
-
C++を使用して文字列の部分文字列の数を見つける
この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &
-
C++STLのvector::begin()およびvector ::end()
vector ::begin()関数は、コンテナの最初の要素を指すイテレータを返すために使用される双方向イテレータです。 vector ::end()関数は、コンテナの最後の要素を指すイテレータを返すために使用される双方向イテレータです。 アルゴリズム Begin Initialize the vector v. Declare the vector v1 and iterator it to the vector. Insert the elements of the vector. P