このチュートリアルでは、指定された 2 つの文内で繰り返されない単語をすべて識別して出力します。繰り返されない単語とは、2 つの文の中で 1 回だけ出現する単語、つまり、別の文の中で繰り返し出現しない単語を指します。このタスクには、入力文を分析し、個々の単語を識別し、2 つの文を比較して 1 回だけ出現する単語を見つけることが含まれます。出力はこれらすべての単語のリストになります。このタスクは、ループ、配列、辞書の使用など、さまざまなプログラミング方法を通じて実行できます。
###方法###方法 1: 辞書を使用する
方法 2: コレクションを使用する
方法 1: 辞書を使用する
これは、実際のコードを含まない構文です。C の辞書メソッドを使用して、指定された 2 つの文内の反復しない単語をすべて出力します -
単語の出現頻度を保存する辞書を宣言します
C では、これは辞書メソッドを使用して、指定された 2 つの文内の重複しない項目をすべて段階的に出力するトリックです -
- 文中の各単語の出現頻度を記録するために使用される空の順序なしマップ文字列 int> dict を宣言します。
ステップ3-Cの文字列ストリームクラスを使用して、2つのフレーズを解析して単語を抽出します。
ステップ 4- 抽出された各単語について、辞書に掲載されているかどうかを確認します。そうであれば、その頻度を 1 つ増やします。それ以外の場合は、頻度 1 で辞書に追加します。
ステップ 5- 両方の文を処理した後、辞書を繰り返し、頻度 1 のすべての用語を表示します。これらは 2 つの文の中で繰り返されていない単語です。
ステップ 6-このメソッドの時間計算量は O(n), です 例 1
の中国語訳は次のとおりです:例 1 このコードは、順序なしマップを使用して、結合されたフレーズ内の各単語の頻度を保存します。次に、マップをループして、1 回だけ出現する各単語を非反復単語のベクトルに追加します。最後に、重複しない単語を公開します。この例は、2 つの文がユーザーによって入力されたのではなく、プログラムにハードコーディングされていることを意味します。
リーリー ###出力### リーリーコレクションは、さまざまな要素をソートされた順序で保持する連想コンテナです。両方のフレーズの用語をコレクションに挿入でき、重複するものは自動的に削除されます。
###文法### ###確かに!以下は、指定された 2 つの文内の反復しない単語をすべて出力するために Python で使用できる構文です。 -リーリー
各文を単語のリストに分割します
ステップ 2
- 文字列フロー ライブラリを使用して、各文を独立した単語に分割し、2 つの別々の配列に保存します。
ステップ 4 - 各単語配列をループし、各単語を正しいセットに挿入します。
ステップ 5 - 各セットをループし、固有の単語を出力します。
例 2の中国語訳は次のとおりです: 例 2
このコードでは、文字列ストリーム ライブラリを使用して各文を個別の単語に分割します。次に、uniqueWords1 と uniqueWords2 の 2 つのコレクションを使用して、各文の一意の単語を保存します。最後に、各セットをループして、重複しない単語を出力します。
#include <iostream> #include <string> #include <sstream> #include <set> using namespace std; int main() { string sentence1 = "This is the first sentence."; string sentence2 = "This is the second sentence."; string word; stringstream ss1(sentence1); stringstream ss2(sentence2); set<string> uniqueWords1; set<string> uniqueWords2; while (ss1 >> word) { uniqueWords1.insert(word); } while (ss2 >> word) { uniqueWords2.insert(word); } cout << "Non-repeating words in sentence 1:" << endl; for (const auto& w : uniqueWords1) { if (uniqueWords2.find(w) == uniqueWords2.end()) { cout << w << " "; } } cout << endl; cout << "Non-repeating words in sentence 2:" << endl; for (const auto& w : uniqueWords2) { if (uniqueWords1.find(w) == uniqueWords1.end()) { cout << w << " "; } } cout << endl; return 0; }
Non-repeating words in sentence 1: first Non-repeating words in sentence 2: second
以上が指定された 2 つの文内の反復しない単語をすべて出力します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。