Pythonでウェイをデコードする
AからZまでの文字を含むメッセージが、次のマッピングを使用して数字にエンコードされているとします-'A'→1、'B'→2...'Z'→ 26.したがって、数字のみを含む空でない文字列が1つある場合、デコードできる方法がいくつあるかを見つける必要があります。したがって、文字列が「12」のような場合、それは「AB」または「L」から作成できるため、2つの方法が考えられます。したがって、答えは2になります。
これを解決するには、次の手順に従います-
- 動的計画法を使用してこれを解決します。
- n:=sの長さ
- dp:=0の数がnの配列
- s [0]が「0」でない場合、dp [0]:=1
- 1からn–1の範囲のiの場合
- x:=s [i]は整数、y:=インデックスi –1からi+1までのsの部分文字列
- x>=1かつy<=9の場合、dp [i]:=dp [i] + dp [i – 1]
- y>=10かつy<=26
- の場合
- i – 2> =0の場合、dp [i]:=dp [i] + dp [i – 2]、それ以外の場合はdp[i]を1増やします
- dpの最後の要素を返す
例(Python)
理解を深めるために、次の実装を見てみましょう-
class Solution(object): def numDecodings(self, s): n = len(s) dp = [0 for i in range(n)] if s[0]!='0': dp[0]=1 for i in range(1,n): x = int(s[i]) y = int(s[i-1:i+1]) if x>=1 and x<=9: dp[i]+=dp[i-1] if y>=10 and y<=26: if i-2>=0: dp[i]+=dp[i-2] else: dp[i]+=1 return dp[-1] ob1 = Solution() print(ob1.numDecodings("226"))
入力
"226"
出力
3
-
Pythonでエスケープ文字を印刷する方法
この記事では、Pythonでエスケープ文字を印刷する方法を見ていきます。エスケープ文字とは何か知っていると思いますか?知らない人のためのエスケープ文字は何ですか? 文字列の個々の意味には、エスケープ文字が使用されます。 改行、タブスペースを含める場合 、など、文字列では、これらのエスケープ文字を使用できます。いくつかの例を見てみましょう。 例 ## new line new_line_string = "Hi\nHow are you?" ## it will print 'Hi' in first line and 'How are you?&
-
Pythonで文字をインクリメントする方法
このチュートリアルでは、Pythonで文字をインクリメントするさまざまな方法を紹介します。 型キャスト まず、型キャストせずにintをcharに追加するとどうなるか見てみましょう。 例 ## str initialization char = "t" ## try to add 1 to char char += 1 ## gets an error 上記のプログラムを実行すると、次の結果が得られます- TypeError Traceback (most recent call last) <ip