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

C++で出現する順序で奇数の頻度を持つ文字を印刷します


この問題では、ユーザーから文字列strが与えられます。また、出現頻度が奇数の文字のみを印刷する必要があります。

この問題を解決するには、文字列内の文字の合計出現頻度を見つける必要があります。そして、出現頻度が奇数である文字列の文字のみを出力します。

トピックをよりよく理解するために例を見てみましょう-

Input : adatesaas.
Output : dte

説明 −出現頻度の高い文字は−

a 4
d 1
t 1
e 1
s 2

頻度が奇数の文字はd、t、eです。

アルゴリズム

それでは、この問題を解決するためのアルゴリズムを作成してみましょう-

Step 1 : Traverse the string and count the number of occurrences on characters of the string in an array.
Step 2 : Traverse the frequency array and print only those characters whose frequency of occurrence is odd.

このアルゴリズムに基づいてプログラムを作成しましょう-

#include <bits/stdc++.h>
using namespace std;
int main(){
   string str = "asdhfjdedsa";
   int n = str.length();
   int frequency[26];
   memset(frequency, 0, sizeof(frequency));
   for (int i = 0; i < n; i++)
      frequency[str[i] - 'a']++;
   for (int i = 0; i < n; i++) {
      if (frequency[str[i] - 'a'] % 2 == 1) {
         cout << str[i]<<" , ";
      }
   }
   return 0;
}

出力

d , h , f , j , d , e , d

  1. Python –文字列を1行あたりK文字の行列に変換します

    文字列を1行あたりK文字の行列に変換する必要がある場合は、リスト内包表記とリストスライスを使用して結果を決定するメソッドが定義されます。 例 以下は同じのデモンストレーションです- def convert_to_matrix(my_string, my_key): temp = [my_string[index: index + my_key] for index in range(0, len(my_string), my_key)] my_result = [list(element) for element in temp] print(my_result) m

  2. Python-文字列のすべての文字の頻度が異なるかどうかを確認します

    この記事では、特定の文字列内の各文字の頻度を見つける方法を説明します。次に、指定された文字列で2つ以上の文字が同じ頻度であるかどうかを確認します。これは2つのステップで実行します。最初のプログラムでは、各キャラクターの頻度を調べます。 各キャラクターの頻度 ここでは、指定された入力画面の各文字の頻度を確認します。空の辞書を宣言してから、各文字を文字列として追加します。また、各文字にキーを割り当てて、辞書に必要なキーと値のペアを作成します。 例 in_string = "She sells sea shells" dic1 = {} for k in in_string: