細切りコード:3で分割されたバイナリ文字列の解析

件名の説明:

バイナリ文字列の長さを考慮すると、3で除算した余りを探します

 

アイデアの分析:

除算3の残りの部分にのみ0,1,2することができますので、ここでは、ステートマシンになります。だから、3つのステートマシンの状態があります。午前1時00分に直面したとき今、一つ一つがバイナリ文字列を横断するために、初期の余りが0である、状態1に行く、状態はまだ0時00分0を経験しています。状態1では、状態0が決定され、1変換遭遇した:0、状態2〜2の、すなわち、残りが発生しました。1、すなわち、残りは状態0~0である、遭遇。これは、1プラス2の1当量を添加することにより、2その後追加された各番号0に相当するため、求めることができます。

 

コード:

1  INT numRest(ストリングS)
 2  {
 3      int型 N = s.length()。
4      INT RES = 0 5      ためには、int型、I = 0 ; iがN <; I ++は6      {
 7          場合(RES == 0 8          {
 9              もし(S [I] == ' 0 ' 10の                  RES = 0 11の             
12                  RES = 1 13         }
 14          そう なら(RES == 1 15          {
 16              であれば(S [I] == ' 0 ' 17                  のRES = 2 18の             
19                  RES = 0 20          }
 21          他の
22          {
 23              であれば(S [I] == ' 0 ' 24                  のRES = 1 25の             
26                  RES = 2 27          }
 28      }
 29の     リターンRES。
30 }

 

おすすめ

転載: www.cnblogs.com/LJ-LJ/p/11610433.html