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

文字列を印刷するためのダイヤル回転数を見つけるためのC++コード


すべての小文字の英語のアルファベットを含む回転式ダイヤルが与えられたとします。文字盤にはプリンターが付いており、回転式ダイヤルのポインターに3秒間留まっている文字が印刷されます。回転式ダイヤルは最初は文字「a」のままで、文字を印刷するたびに初期位置にリセットされません。文字列sが与えられ、与えられた文字列を印刷する必要があります。ダイヤルを別の文字に移動するたびに、1回転が発生します。指定された文字列「s」を印刷するために必要な回転の合計量を確認する必要があります。

したがって、入力がs ="elephant"のような場合、出力は63になります。

ステップ

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

t := 'a'
res := 0
for initialize i := 0, when i < size of s, update (increase i by 1),
do:
   res := res + minimum of (|t - s[i]|, 26 - |t - s[i]|)
   t := s[i]
return res

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

#include <bits/stdc++.h>
using namespace std;
#define N 100
int solve(string s) {
   char t = 'a';
   int res = 0;
   for(int i = 0; i < s.size(); i++){
      res += min(abs(t - s[i]), 26 - abs(t - s[i]));
      t = s[i];
   }
   return res;
}
int main() {
   string s = "elephant";
   cout<< solve(s);
   return 0;
}

入力

"elephant"

出力

63

  1. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &

  2. C++を使用して停止ステーションの数を見つける

    ポイントXとYの間にn個の中間駅があります。2つの駅が隣接しないように、s駅に停車するように列車を配置できるさまざまな方法の数を数えます。そのため、この記事では、停車駅の数を見つけるためのあらゆる可能なアプローチについて説明します。問題を見ると、sの駅数で列車を止めることができる組み合わせを見つける必要があることがわかります。 問題を解決するためのアプローチ 中間駅が8つあり、3つの中間駅で電車を止める方法を見つける必要がある例を見てみましょう。 n = 8, s = 3 (n-s)、つまり電車が止まらない駅が5つ残っています 電車が止まらないA、B、C、D、Eの5つの駅があります