C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムで2つの文字列の一般的でない文字を検索する


このチュートリアルでは、指定された2つの文字列から異なる文字を見つける方法を学習します。例を見てみましょう。

入力

string_one = "tutorialspoint"
string_two = "tutorialsworld"

出力

d n p w

問題を解決するためにハッシュを使用します。 2つのネストされたループを作成するよりも効率的です

プログラムを解決するための手順を見てみましょう。

  • 2つの文字列をいくつかのランダムな値で初期化します。

  • マップをmapcharsとして初期化します。

  • 最初の文字列を繰り返し処理し、各文字を値1のマップに挿入します。

  • 次に、2番目の文字列を繰り返し処理します。

    • キャラクターがすでに存在するかどうかを確認します。

    • 存在する場合は、それに0を割り当てます。

    • 存在しない場合は、値1の文字を挿入します。

  • マップを繰り返し処理し、値1の文字を印刷します。

以下のコードを参照してください。

#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string one, string two){
   // initializing char presence in string
   map<char, int> chars;
   // iterating over the first string
   for (int i = 0; i < one.size(); ++i){
      // inserting every character into map
      chars.insert({one[i], 1});
   }
   // iterating over the second string
   for (int i = 0; i < two.size(); ++i){
      // checking whether the current char in string or not
      if (chars.count(two[i])) {
         // assigning 0 for common chars
         chars.find(two[i])->second = 0;
      }
      else {
         // insering new chars
         chars.insert({two[i], 1});
      }
   }
   // printing the distinct characters
   for (auto item: chars){
      // checking the presence
      if (item.second == 1) {
         // printing the distinct char
         cout << item.first << " ";
      }
   }
}
int main(){
   string one = "tutorialspoint";
   string two = "tutorialsworld";
   findDistinctCharacters(one, two);
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

d n p w

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ

  2. C++で平行四辺形の面積を見つけるプログラム

    この問題では、平行四辺形の底と高さを表す2つの値が与えられます。私たちのタスクは、C++で平行四辺形の領域を見つけるプログラムを作成することです。 平行四辺形 は、反対側が等しく平行な4辺の閉じた図形です。 問題を理解するために例を見てみましょう 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積=B* H =20 * 15 =300 ソリューションアプローチ この問題を解決するために、平行四辺形の面積の幾何学的公式を使用します。 Area = base * height. ソリューションの動作を説明するプログラム 例 #include <io