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

C++で2つの文字列の一般的な文字を数える


2つの文字列、たとえばstr1とstr2が与えられ、タスクは2つの文字列の共通文字の数を見つけることです。つまり、str1 [i] =str [j]の場合、それらはペアと見なされ、数が増加します。 1になり、str1 [i]!=str2 [j]の場合、それらはペアとは見なされず、カウントは1に増加しません。

Input − str1 = “hello”
      str2 = “heoo”
Output − count is: 3

説明 − str1 [0] =str2 [0]つまり、h; str1 [1] =str2 [1]つまり、e; str1 [2]!=str2 [2]つまり、lとo; str1 [3] =str2 [3]つまり、o。したがって、類似した文字のペアは、異なる文字を含む3と1のペアです。

Input − str1 = “point”
      str2 = “print”
Output − count is: 4

説明 − str1 [0] =str2 [0]つまり、p; str1 [1]!=str2 [1]つまり、oとr; str1 [2] =str2 [2]つまり、i; str1 [3] =str2 [3]つまり、n; str1 [4] =str2 [4]つまり、t。したがって、類似した文字のペアは、異なる文字を含む4と1のペアです。

以下のプログラムで使用されているアプローチは次のとおりです

  • 2つの文字列str1とstr2を入力します

  • スペースを含む文字列内の文字数に応じて整数値を返すlength()関数を使用して、両方の文字列のサイズを計算します。

  • 最初に、両方の文字列の文字の頻度を0で初期化します。

  • ここで、str1の頻度を更新するには、「f1 [str1 [i]-'a'] ++」を適用します。これにより、反復ごとに頻度が増加し、str2で同じプロセスが適用されます

  • ペアの数を計算するには、f1とf2にmin()関数を適用します。

  • 結果を表示する

#include <iostream>
using namespace std;
// Function to count the valid indices pairs
int pairs(string str1, int size1, string str2, int size2){
   // f1 and f2 for frequencies of characters
   // of string str1 and str2
   int f1[26] = { 0 };
   int f2[26] = { 0 };
   // 'c' To count the valid pairs
   int i, c = 0;
   //updating the frequencies of str1 and st2
   for (i = 0; i < size1; i++){
      f1[str1[i] - 'a']++;
   }
   for (i = 0; i < size2; i++){
      f2[str2[i] - 'a']++;
   }
   // Find the count of valid pairs
   for (i = 0; i < 26; i++){
      c += (min(f1[i], f2[i]));
   }
   return c;
}
// main function
int main(){
   string str1 = "tutorialspoint", str2 = "codingground";
   int size1 = str1.length(), size2 = str2.length();
   cout<<”Total pairs with str1[i]=str2[j] are: ”;
   cout << pairs(str1, size1, str2, size2);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Total pairs with str1[i]=str2[j] are − 6

  1. C++で2つの文字列の一般的でない文字を検索します

    このチュートリアルでは、2つの文字列の一般的でない文字を見つけるプログラムについて説明します。 このために、2つのストリングが提供されます。私たちの仕事は、両方の文字列の珍しい文字をソートされた順序で印刷することです。 例 #include <bits/stdc++.h> using namespace std; const int LIMIT_CHAR = 26; //finding the uncommon characters void calculateUncommonCharacters(string str1, string str2) {    

  2. C++で2つのバイナリ文字列を追加するプログラム

    2進数の文字列が2つある場合、それら2つの2進数文字列を加算して得られた結果を見つけ、その結果を2進数文字列として返す必要があります。 2進数は、0または1のいずれかで表される数値です。2つの2進数を加算する際には、2進数の加算規則があります。 0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1 入力 str1 = {“11”}, str2 = {“1”} 出力 “100” 入力 str1 = {“110”},