LeetCode LCP 3ロボットアドベンチャー

トピック分析:

我々はそれがある限り、私のためにRと統計のコマンド文字列のU(数として、実際には終点座標(8,8)、コマンド文字列の数であると仮定すると、この問題の主なコアについて、このような「RURUU」のためであります与えられた例えば、num_R == 2、num_Uの== 3 )、 明らかにかかわらず、我々は最後に達することができるかどうかの、この命令は、それがの終わりに到達する前に一度、その後、私達はちょうど行くよりも多くを行くために、少なくとも可能ですX減算ホイール(Iは、x ==分(8/2、の点で与えられ、例えば 8/3)== 2、 中間車の数は無視移動し、終点の位置をに変換することができる(4,2 ))、ある状況の最後のラウンドで見つけることができる数よりも少ないフィニッシュラインに到達し、コマンド文字列を横断するように、R番号Uを必要とし、ステップシミュレーションによるステップは、xまたはyの端回以上は決してでき彼らは、この判定処理をより便利に、単一の関数として記述することができますしようとする目標点に達することができるように、それは、あまりにも、バリアポイントに達することがあります。問題が解決した場合、我々は最初のポイントへの障壁を決定する(X <=エンドポイントxが、Y <=エンドyを、そうでない場合は質問の意味は、障害は有効なポイントではありません)ポイントに到着することができ、すべての障害が戻ってこないだろうかを決定する必要がありますそして、最後に分析することに達することができます

この問題はコード:

1  クラスソリューション{
 2  公共3      INT分(INT X、INT Y){
 4          リターン X <Y?X:Y;
 5      }
 。6      BOOLジャッジ(文字列コマンド、INT x_num、INT y_num、INT X、INT Y){
 7          INT TEMP =分(X / x_num、Y / y_num);        // TEMP共通多重記録
8。          X = X - * TEMPのx_num;       // XはR&LTに記録されている
9。          Y = Y - y_num * TEMP。      // YレコードはU-で
 10          // xとyの場合は、最初のサイクルの終わりの相対位置を表す
11。         IF(Xの== 0 &&のy == 0リターン trueに12は         {
 13は             INT len_cmd = コマンド.size();
 14              INT I = 0 ; I <len_cmd; I ++は){
 15                  IF(コマンド[I] == ' U- ' ){
 16                      -Y - 17                      IF(Y < 0リターン falseに18                  } {
 19                      x-- 20                      であれば(X < 0を返す 21                  }
 22                  場合(Xの== 0 && Y == 0を返す 23              }
 24          }
 25          リターン 26      }
 27      ブールロボット(文字列コマンド、ベクトル<ベクトル< INT >>&障害、int型のx、INT Y){
 28          INT len_cmd = command.size();
 29          INT X_1 = 0 ;
 30          INT Y_1 = 0 ;
 31である         // 統計最初のサイクルの場所に来ることができる
32          のためにINT I = 0 I <len_cmd。 ; I ++は){
 33が             IF(コマンド[I] == ' R&LT ' ){
 34は                  X_1 ++ ;
 35              } {
 36                  Y_1 ++ ;
 37              }
 38であります         }
 39          // 置くシークの端部であるとしてすべての障害点が(疾患の点はxとyのxとyの端部よりも小さくなるように)偽のリターンに到達に到達することができる
40          INT len_obs = obstacles.size();
 41である         ためint型 I = 0 ; Iはlen_obsを<; Iは++ ){
 42はある             IF(障害物[I] [ 0 ] <= X &&障害物[I]が[ 1 ] <= Y){
 43である                 // falseにリターンに達する
44で                 IF(裁判官(コマンド、X_1、Y_1、障害物[I] [ 0 ]、障害物[I] [ 1。 ])== trueに復帰 はfalse ;
 45              }
 46れます         }
 47          // エンドポイントにすべての点で障害物が直接エンドポイントに達しない場合には到達するかどうかを決定する
48          のIF(判事(コマンド、X_1、Y_1、X、Y)は== trueに復帰 trueにし49           返し falseに;
 50      }
 51 }。

 

おすすめ

転載: www.cnblogs.com/findview/p/11616836.html