With Double Error Correction
الدرس 3 من 3 في دورة تحديات البرمجة للمقابلات - الحزمة الثانية على Coddy.
التحدي
صعبيتم إعطاؤك إشارة كسلسلة من الأصفار والآحاد.
بسبب بعض الضوضاء الكهرومغناطيسية الشديدة، أحياناً (وليس نادراً) تحصل على 0 بدلاً من 1.
بافتراض أن كل إشارة من الآحاد قد تحتوي على بتين خطأ على الأكثر (بمعنى صفرين بدلاً من واحدين)، قم بإرجاع طول أطول تسلسل كان من الممكن إرساله إليك بخطأين فقط.
مثال 1،
المدخلات:
111100111011101110
المخرجات المتوقعة:
11
لأن كلا الصفرين بين التسلسلين اللذين طولهما 3 يمكن أن يكونا خطأ، مما يربط الثلاثة في تسلسل بطول 11.
مثال 2:
المدخلات:
0011110010110
المخرجات المتوقعة:
7
لأن الصفرين الموجودين على يمين التسلسل الذي طوله 4 يمكن أن يكونا خطأ، مما يربطه ببت الـ 1، ويجعلهما تسلسلاً بطول 7.
جرّب بنفسك
#include <string.h>
int getLongestRepeatingOnes(char* s) {
// اكتب الكود هنا
}جميع دروس تحديات البرمجة للمقابلات - الحزمة الثانية
تدرّب بنفسك: مترجم C عبر الإنترنت