0
「A」は時計回りに1ステップ移動できることを意味し、「C」は反時計回りに1ステップ移動でき、「? 1つのステップを時計回りまたは反時計回りに動かせることを意味します。だから、指定された時点で、文字列が最初の位置から最大距離を見つける。円弧内の円弧の移動
たとえば: - 入力: - AACC?CC 出力: - 3 説明: - もし?最大距離は3になります。
この問題を解決する最適なアプローチは?
「A」は時計回りに1ステップ移動できることを意味し、「C」は反時計回りに1ステップ移動でき、「? 1つのステップを時計回りまたは反時計回りに動かせることを意味します。だから、指定された時点で、文字列が最初の位置から最大距離を見つける。円弧内の円弧の移動
たとえば: - 入力: - AACC?CC 出力: - 3 説明: - もし?最大距離は3になります。
この問題を解決する最適なアプローチは?
str = "AACC?CC"
count = 0
extra = 0
for i in str:
if i == 'A':
count -= 1
elif i == 'C':
count += 1
else:
extra += 1
dist = abs(count) + extra
if count < 0:
print "AntiClockwise:",
else:
print "ClockWise:",
print dist
これを試してみてください。しかし、 'A'、 'C'の動きが起こらなければならないので、あなたは左右に行かなければなりません。 '?'はオプションです。あなたはどれくらいの数を数えることができますか?そこにあり、それを最終的な答えに加えなさい。
このサイトは、プログラミング/アルゴリズムの問題を解決することではありません。すでに試したことを示すコードを追加してください。 – EFrank
私は解決を求めなかった。ちょうどアプローチを求めた。 – coder
あなたが「A」文字と「C」文字を数える方法について考えてみましょう。最大値をとり、「?」の数を追加してください。 – EFrank