文字列内の文字を対応する数値に変換し、結果が6またはNOで割り切れる場合はYESを出力します。たとえば、abは12で、YESを返します。プログラムは小さな文字列に対してうまくいきますが、非常に長い入力に対しては間違った答えを与えます。私は整数のデータ型を長く変更しようとしましたが、何も変わりませんでした。文字列デコーダが正しく機能しない
それが機能しなかったため、テストケース:here#1
編集:入力制限は小文字のみを許可する「」「i」は オリジナル問題リンクする:https://www.hackerearth.com/problem/algorithm/encoded-strings-3/
str = raw_input()
n = len(str)
value = 0L
str = str[::-1]
for i in arange(n):
value = value*1L + (10L**i)*(ord(str[i])-96)
if value%6 == 0:
print "YES"
else:
print "NO"
「テストケース」のように見えず、チャレンジでいっぱいのように見えますが、テスト**のケースが短くても機能しますか? –
実際に両方のケースで実際にコードを実行することができただけで、 'value%6'は最初のケースで' 4'、2番目で '3'でした。どちらもそうではないと思う**' YES "となる。 –
@ TadhgMcDonald-Jensenはい、短時間のテストケースで動作しました。私は動作する新しいコードで答えを投稿しました。おそらく、私は、変換後の文字列が長整数型では長すぎるという問題があると思います。両方の回答がYESです。 –