Pythonで単語のリストによってターゲットを綴ることができるかどうかをチェックするプログラム
numsと呼ばれる数のリストと別の数kがあるとします。インデックスkと任意のインデックスiから開始する場合、正確にnums[i]ステップ数だけ左または右に進むことができます。リストの最後に到達できるかどうかを確認する必要があります。
したがって、入力がnums =[0、0、2、1、3、3、1、1] k =2の場合、インデックス2から開始してから、インデックス4にジャンプするかのように、出力はTrueになります。次に、最後のインデックス7にジャンプします。
これを解決するために、次の手順に従います-
-
n:=numsのサイズ
-
訪問:=サイズnのリストで0を入力
-
tovisit:=サイズ1のリストで、それにkを挿入します
-
tovisitのサイズが<0の場合、実行
-
i:=tovisitの最後の要素とtovisitから削除
-
iがn-1と同じ場合、
-
Trueを返す
-
-
visited [i]が1と同じでない場合、
-
訪問済み[i]:=1
-
up:=i + nums [i]
-
down:=i --nums [i]
-
up
-
tovisitの最後に挿入
-
ダウン>=0の場合、
-
tovisitの最後に挿入します
-
-
Falseを返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, nums, k): n=len(nums) visited = [0]*n tovisit = [k] while len(tovisit)>0: i=tovisit.pop() if i==n-1: return True if visited[i]!=1: visited[i]=1 up=i+nums[i] dn=i-nums[i] if up=0: tovisit.append(dn) return False ob = Solution() nums = [0, 0, 2, 1, 3, 3, 1, 1] k = 2 print(ob.solve(nums, k))
入力
[0, 0, 2, 1, 3, 3, 1, 1], 2
出力
True
-
Pythonでロボットが目標位置に到達できるかどうかをチェックするプログラム
現在、位置(0、0)(デカルト平面)に座っているロボットがあるとします。 N(北)、S(南)、W(西)、およびE(東)を含む、実行可能な移動のリストがある場合。宛先座標(x、y)に到達できるかどうかを確認する必要があります。 したがって、入力がmoves =[N、N、E、E、S]、(x、y)=(2,1)のような場合、出力はTrueになります。 これを解決するには、次の手順に従います- temp_coord:=[0,0] 移動の移動ごとに、 移動が「N」と同じ場合、 temp_coord [1]:=temp_coord [1] + 1 それ以外の場合、移動が「S」と同じ
-
文字列が空かどうかをチェックするPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を入力したら、文字列が空かどうかを確認する必要があります。 Python文字列は本質的に不変であるため、操作を実行するときは、文字列を処理するときに注意が必要です。 ここでは、上記の問題ステートメントを解決するための2つのアプローチについて説明します- len()メソッドを使用します。 等式演算子を使用します。 アプローチ1:len()メソッドを使用する 例 test_str1 = "" test_str2 = "@@@" if(l