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

ソートされた形式で文字列を並べ替えるために再配置する必要がある文字数を見つけるC++プログラム


n文字の文字列Sがあるとします。 Sには小文字のみが含まれます。 0からnの範囲の数値kを選択してから、Sからk文字を選択し、それらを任意の順序で並べ替える必要があります。このプロセスでは、残りの文字は変更されません。この操作全体を1回だけ実行します。 Sがアルファベット順にソートされるkの値を見つける必要があります。

したがって、入力がS ="acdb"の場合、「a」は正しい場所にあり、残りの文字を再配置する必要があるため、出力は3になります。

ステップ

これを解決するには、次の手順に従います-

n := size of S
d := S
sort the array d
j := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   if S[i] is not equal to d[i], then:
      (increase j by 1)
return j

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;

int solve(string S) {
   int n = S.size();
   string d = S;
   sort(d.begin(), d.end());
   int j = 0;
   for (int i = 0; i < n; i++) {
      if (S[i] != d[i])
         j++;
   }
   return j;
}

int main() {
   string S = "acdb";
   cout << solve(S) << endl;
}

入力

"acdb"

出力

3

  1. PHPで文字列に文字が出現する回数を見つけるプログラム

    例 <?php    $str = "welcome to tutorials point";    $str = str_replace(" ","",$str);    $arr = str_split($str);    foreach ($arr as $key =>$val){       if (!isset($output[$val])){         &n

  2. Pythonで特定の文字列文字を含むピザを見つけることができる回数をカウントするプログラム

    小文字の文字列sがあるとすると、sに存在する文字を使用して作成できる「ピザ」文字列の数を見つける必要があります。 sの文字は任意の順序で使用できますが、各文字は1回使用できます。 したがって、入力が「ihzapezlzzilaop」のような場合、出力は2になります。 これを解決するには、次の手順に従います- p_freq:=sの「p」の頻度 i_freq:=sの「i」の頻度 z_freq:=sの「z」の頻度 a_freq:=sの「a」の頻度 最小値(p_freq、i_freq、z_freq / 2、およびa_freq)を返します 理解を深めるために、次の実装を見てみましょう-