は、以下ループ検討:input_file_contents
の各文字についてループ「を有するn個処理するアイテムだけのn-1更新ステップ」
marker_stream = 0
for character in input_file:
if character != ',':
marker_stream |= 1
marker_stream <<= 1
を、このループは、処理ステップを行い、処理の結果を格納しますステップ(0
またはビットのいずれか)をmarker_stream
に入力し、次にmarker_stream
を1つだけシフトして次の繰り返しに備えます。
問題は次のとおりです。入力ファイルの各文字を処理したいですが、移動するのはmarker_stream
number of characters in the input file - 1
回だけです。上のループはmarker_stream
を1回何回もシフトします。
forループの後にmarker_stream >>= 1
を追加できますか、現在処理中の文字がファイルの最後の文字であるかどうかを示すフラグを保持できますが、どちらの解決策もそうではありませんすばらしいです。フラグの解決策にはフラグ(yuck)が含まれており、処理ループが長くなると、余分なラインの解決策が混乱する可能性があります。
私はこの問題のより洗練された解決策を探しています。より一般的には、「処理する項目はありますが、更新手順はn-1回だけ実行したい」という問題があります。