With Double Error Correction
Coddyの「コーディング面接チャレンジ - パック II」コースのレッスン 3/3。
チャレンジ
難しい0と1の文字列としてシグナルが与えられます。
激しい電磁ノイズのため、時々(それほど珍しくなく)1の代わりに0を受信することがあります。
1の各シグナルには最大2つのエラービットが含まれている可能性がある(つまり、1の代わりに2つの0がある)と仮定して、2つのエラーのみで送信された可能性のある最長のシーケンスの長さを返してください。
例 1,
入力:
111100111011101110
期待される出力:
11
長さ3の2つのシーケンスの間にある両方の0がエラーである可能性があり、それら3つを繋いで長さ11のシーケンスになるためです。
例 2:
入力:
0011110010110
期待される出力:
7
長さ4のシーケンスの右側にある2つの0がエラーである可能性があり、それと1ビットを繋いで長さ7のシーケンスになるためです。
自分で試してみよう
#include <string.h>
int getLongestRepeatingOnes(char* s) {
// ここにコードを記述してください
}コーディング面接チャレンジ - パック IIのすべてのレッスン
自分で練習してみよう: Cオンラインコンパイラ