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

C++で指定された文字列から可能な長さnのサブ文字列の数


文字列str[]と数値nが与えられます。目標は、長さがnであるstr[]のすべてのサブストリングを見つけることです。文字列が「abcde」でn=3の場合、長さ3のサブ文字列は「abc」、「bcd」、「cde」であり、カウントは3です。

例を挙げて理解しましょう。

入力 − str [] =“ computer” n =4

出力 −指定された文字列から可能な長さnの部分文字列の数は− 5

説明 −長さ4の部分文字列は、「comp」、「ompu」、「mput」、「pute」、「uter」です。

入力 − str [] =“ development” n =5

出力 −指定された文字列から可能な長さnの部分文字列の数は− 7

説明 −長さ5のサブストリングは、「devel」、「evelo」、「velop」、「elopm」、「lopme」、「opmen」、「pment」です。

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

文字列str[]の長さをLとすると、str[]内の長さnの部分文字列の数はLn+1になります。文字列が「abcdefghi」でnが4の場合、サブ文字列は「abcd」、「bcde」、「cdef」、「defg」、「efgh」、「fghi」になります。カウントは6です。また9-4+1=6です。

  • 文字列strを取ります。

  • nを整数とします。

  • 関数possible_substring(string str、int length、int n)は文字列を受け取り、その長さはnであり、長さがnのstrの部分文字列の数を返します。

  • 可変カウントを取ります。

  • count =length-n+1を設定します。

  • 最後に結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
int possible_substring(string str, int length, int n){
   int count = length - n + 1;
   return count;
}
int main(){
   string str = "learning";
   int length = str.length();
   int n = 2;
   cout<<"Count of substrings of length n possible from the given string are: "<<possible_substring(str, length, n);
   return 0;
}

出力

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

Count of substrings of length n possible from the given string are: 7

  1. C++のグリッドで指定された方向に可能な移動をカウントします

    サイズnxmのグリッドと開始点x、yを表す2つの変数nとmです。 また、移動((1,1)、(2,2))などとしてグリッド内を移動するために実行できるステップ/移動のペアも指定されます。移動の各ペアは、x、y軸で実行されるステップの単位を表します。目標は、境界[1、n] X [1、m]内のグリッド内をトラバースするために実行できる合計ステップを見つけることです。nが5、mが4、現在の位置が2、2で、選択されたステップが( 1、-1)次に、このステップを1回実行すると、(3,1)になります。このステップを再度実行すると、(4、-1)になります。これは、-1が範囲外であるため無効です。 例

  2. C++で指定されたサイズの長方形内で可能な菱形の数を数えます

    高さX幅の寸法の長方形が与えられます。長方形は、点(0,0)を左下隅に持つ2D座標系で表されます。したがって、目標は、これらすべての条件が満たされるように、この長方形内で可能な菱形の数を数えることです- ひし形の面積は0を超えています。 ひし形の対角線はx軸とy軸に平行です。 ひし形には、すべてのコーナーの整数座標があります。 例を挙げて理解しましょう 入力 −長さ=3幅=3 出力 −指定されたサイズの長方形内で可能な菱形の数は次のとおりです。4 説明 −下の図には、height =width=3の長方形があります。また、面積が0を超え、対角線が両方の軸に平行(