2017-09-06 28 views
0

「A」は時計回りに1ステップ移動できることを意味し、「C」は反時計回りに1ステップ移動でき、「? 1つのステップを時計回りまたは反時計回りに動かせることを意味します。だから、指定された時点で、文字列が最初の位置から最大距離を見つける。円弧内の円弧の移動

たとえば: - 入力: - AACC?CC 出力: - 3 説明: - もし?最大距離は3になります。

この問題を解決する最適なアプローチは?

+0

このサイトは、プログラミング/アルゴリズムの問​​題を解決することではありません。すでに試したことを示すコードを追加してください。 – EFrank

+0

私は解決を求めなかった。ちょうどアプローチを求めた。 – coder

+0

あなたが「A」文字と「C」文字を数える方法について考えてみましょう。最大値をとり、「?」の数を追加してください。 – EFrank

答えて

1
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​​'の動きが起こらなければならないので、あなたは左右に行かなければなりません。 '?'はオプションです。あなたはどれくらいの数を数えることができますか?そこにあり、それを最終的な答えに加えなさい。

関連する問題