C++で指定された文字列から方向を見つけます
LとRのみを含む文字列があるとします。これは、それぞれ左回転と右回転を示し、ピボットの最終的な方向を見つける必要があります。ここでの方向は、北(N)、東(E)、南(S)、西(W)です。ピボットはコンパスの北(N)に向けられていると想定しています。
したがって、入力が「RRLRLLR」のような場合、出力はEになります。最初の方向はNであるため、RRはSを指し、LRは同じNを再び指し、LLは前の位置Nを指します。 RはEを指します。したがって、Eが最終です。
これを解決するには、次の手順に従います-
-
カウント:=0
-
方向:=空白の文字列
-
初期化i:=0の場合、i − sの長さの場合、更新(iを1増やします)、実行-
-
s[i]が'L'と同じ場合、-
-
(カウントを1つ減らします)
-
-
それ以外の場合
-
(カウントを1つ増やします)
-
-
-
カウント>0の場合、-
-
count mod 4が0と同じ場合、-
-
方向:="N"
-
-
それ以外の場合、カウントmod 4が1と同じ場合、-
-
方向:="E"
-
-
それ以外の場合、カウントmod 4が2と同じ場合、-
-
方向:="S"
-
-
それ以外の場合、カウントmod 4が3と同じ場合、-
-
方向:="W"
-
-
-
count <0の場合、-
-
count mod 4が0と同じ場合、-
-
方向:="N"
-
-
それ以外の場合、カウントmod 4が-1と同じ場合、-
-
方向:="W"
-
-
それ以外の場合、カウントmod 4が-2と同じ場合、-
-
方向:="S"
-
-
したがって、カウントmod 4が-3と同じ場合、-
-
方向:="E"
-
-
-
戻り方向
例
理解を深めるために、次の実装を見てみましょう-
#include<bits/stdc++.h> using namespace std; string get_dir(string s) { int count = 0; string direction = ""; for (int i = 0; i < s.length(); i++){ if (s[0] == '\n') return NULL; if (s[i] == 'L') count--; else count++; } if (count > 0){ if (count % 4 == 0) direction = "N"; else if (count % 4 == 1) direction = "E"; else if (count % 4 == 2) direction = "S"; else if (count % 4 == 3) direction = "W"; } if (count < 0){ if (count % 4 == 0) direction = "N"; else if (count % 4 == -1) direction = "W"; else if (count % 4 == -2) direction = "S"; else if (count % 4 == -3) direction = "E"; } return direction; } int main() { string s = "RRLRLLR"; cout << (get_dir(s)); }
入力
"RRLRLLR"
出力
E
-
C ++を使用して、指定されたポイントから可能な四辺形の数を見つけます
四辺形は、ユークリッド平面幾何学で4つの頂点と4つのエッジを持つポリゴンを形成します。名前4-gonなど。四辺形の他の名前に含まれ、正方形、表示スタイルなどとしても知られています。 この記事では、与えられた点から可能な四辺形の数を見つけるためのアプローチを説明します。この問題では、デカルト平面に提供された4つの点(x、y)を使用して作成できる四辺形の数を調べる必要があります。だからここに与えられた問題の例があります- Input : A( -2, 8 ), B( -2, 0 ), C( 6, -1 ), D( 0, 8 ) Output : 1 Explanation : One quadr
-
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が範囲外であるため無効です。 例