私は自分のコードに何が問題なのかを解明しようとしています。あなたが番号1111を与えれば、それは出力41あなたは整数を読み込みます、読み取りそれ-と、水抜きに慣れていない人のためにそうPythonの「読み込み中」プログラムで非常に奇妙で挑戦的なエラー
def next(I):
if I == 0:
return 0
else:
s_I = str(I)
result_s = ''
result_i = 0
while True:
if len(s_I) !=0:
count = 1
marker = s_I[0]
for x in range(0, (len(s_I)-1)):
if s_I[x] == s_I[x+1] and s_I[x] == marker:
count = count + 1
result_s = result_s + str(count) + marker
s_I = s_I[count:]
continue
else:
break
result_i = int(result_s)
print(result_i)
:これは私がこれまでに起こったものですシーケンスの次の整数は、それを再度読み取った後のものです。たとえば、最初のカップルは、1,11,21,1211,111221,312211,13112221などです。これは私の問題です:
私は私が次のものではない番号の繰り返しを持つたびにそれには1211や11122211のように、動作しません。 1は何らかの理由で再びカウントされ、すべてが奇妙になります。で
- :例えば
I = 1211
- :次の(I)
- アウト:それは111221.なければならない場合2121
すべてのヘルプは大きくなるであろう感謝!!!
ありがとうございます!
ああ、公正なポイント。私が-1までの範囲を持っていたのは、その下のif文で発生したインデックスエラーによるものです。私はあなたが示唆したものに変更しました、それはより意味があるようになりましたが、現在、私は適切なifステートメントに苦しんでいます。 – Alex
次の文字の代わりに最後の文字を確認することができます。 –
"最も簡単な方法はしばしば最も簡単です。"ありがとうございました。私の出力は依然として希望の出力と一致していません。私が上に持っているinとoutのステートメントは、まだ彼らの方法です。残念なことに、二重カウントがまだ発生しています。私はそれに取り組み、私が何を召集できるかを見ていきます。あなたが他のアイデアを持っているなら、私に知らせてください。しかし、あなたはすでに大きな助けになっています。ありがとう – Alex