1138【leetcode】。アルファベットボードのパス

次のように内容は次のとおりです。

アルファベットボードでは、我々は位置の開始  (0, 0)文字に対応します、  board[0][0]

ここで  board = ["abcde", "fghij", "klmno", "pqrst", "uvwxy", "z"]、以下の図に示すように。

我々は、次の動きをすることがあります。

  • 'U' 位置がボード上に存在する場合は、1行までの私たちの位置を移動させます。
  • 'D' 位置がボード上に存在する場合は、1行下に私たちの位置を移動させます。
  • 'L' 位置がボード上に存在するならば、我々の立場は一つの列を左に移動します。
  • 'R' 位置がボード上に存在する場合は、右の1列私たちの位置を移動させます。
  • '!' 文字を追加し  board[r][c] 、当社の現在の位置に  (r, c) 答えること。

(ここでは、ボード上に存在する唯一の位置は、それらの文字と位置です。)

私たちの答えは同じになり移動のシーケンスを返し  target 動きの最小数でを。あなたはそうする任意のパスを返すことがあります。

 

例1:

入力:ターゲット= "すご腕" 
出力: "!DDR UURRR !! DDD!"

例2:

入力:= "コード"ターゲット
出力: "!!!!RR DDRR UUL R"

 

制約:

  • 1 <= target.length <= 100
  • target 英語のみの小文字の文字で構成されています。

ソリューションの概要:表全体を座標軸として抽象化されているこの問題は困難ではない、例えば、(0,0)座標、Lは、(2,1)の座標は、Lへのパスは、左右方向になっています時間(X座標マイナスLのx座標)、最大移動の移動方向とダウン回(Lマイナス座標のy座標)。ここで注意すべきことの一つは、それが開始またはz zから到着しているかどうか、uは到着からのみ通過しなければならないので、開始または終了文字は、zがあり、zを経由しておくことはできません。

コードは以下の通りであります:

クラス溶液(オブジェクト):
     DEF :alphabetBoardPath(自己、ターゲット)
         "" " 型ターゲット:STR 
        :RTYPE:STR 
        """ 
        ボード = [ " ABCDE "" FGHIJ "" klmno "" PQRST "uvwxy " " Z " ] 
        DIC = {}
         のための I における範囲(LEN(ボード))。
            以下のための J 範囲(LEN(ボード[I])):
                DIC [ボード[I] [J] = (i、j)は
        、X、Yは = 0,0 
        RES = '' 
        のためのI ターゲット:
            X1、Y1 = DIC [I ]
                         もし I == ' Z ' 
                V = Y - Y1
                 もし V> 0:
                    RES + = ' L ' * V
                 
                    RES + = 'R ' *( - V)は
                、V = X - X1
                 もし V> 0:
                    RES + = 'は、Uは[ * V
                 
                    RES + = ' D ' *( - V)
             
                V = X - X1
                 もし V> 0:
                    resが + = ' Uは' * V
                 
                    RES + = ' D ' *( - V)
                V = Y - Y1
                 の場合 V> 0:
                    RES + = ' L ' * V
                 
                    RES + = ' R ' *( - v)の
            RES + = " 'の
            X、Y = X1、Y1の
         戻り RES

 

おすすめ

転載: www.cnblogs.com/seyjs/p/11303301.html