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

C++で指定されたパスからの最小ストップ数


問題の説明

  • 2次元空間には、特定の順序でアクセスする必要のあるポイントが多数あります。
  • あるポイントから別のポイントへのパスは常に最短パスとして選択され、パスセグメントは常にグリッド線に揃えられます。
  • ポイントを訪問するために選択されたパスが与えられます。特定のパスを生成するために必要な最小ポイント数を指定する必要があります。

アルゴリズム

1. We can solve this problem by observing the pattern of movement when visiting the stop
2. If we want to take the shortest path from one point to another point, then we will move in either one or max two directions

#include <bits/stdc++.h>
using namespace std;
int getMinStops(string path) {
   int n = path.length();
   map<char, int> directionMap;
   int stops = 1;
   for (int i = 0; i < n; ++i) {
      char direction = path[i];
      directionMap[direction] = 1;
      if ((directionMap['L'] && directionMap['R']) ||
      (directionMap['U'] && directionMap['D'])) {
         directionMap.clear();
         ++stops;
         directionMap[direction] = 1;
      }
   }
   return stops + 1;
}
int main() {
   string path = "LLUUULLDD";
   cout << "Minimum stops = " << getMinStops(path) << endl;
   return 0;
}

上記のプログラムをコンパイルして実行する場合。次の出力を生成します

出力

Minimum stops = 3

  1. 特定の基数のC++パンデジタル数

    0から基数Bまでのすべての桁を含む数値は、その基数のパンデジタル数と呼ばれます。ただし、一部の数値は1から9までの数字を持ち、ゼロレスパンデジタル数と呼ばれます。パンデジタル数の例としては、0123456789、0789564312などがあります。 このチュートリアルでは、数値と底が与えられている問題について説明します。たとえば、-のように、その数が与えられた底でパンデジタルであるかどうかを確認する必要があります。 Input: num = “9651723467380AZ”, base = 10 Output: YES Explanation: num contai

  2. 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