Persian Türkçe English

چالش رمزگشایی کد باینری

هدف چالش

در این چالش، شما باید یک رشته باینری (متشکل از 0 و 1) را به متن اصلی آن رمزگشایی کنید. برای این کار، باید کدهای باینری را بر اساس جدول ارائه‌شده به کاراکترها یا کلمات مربوطه تبدیل کنید.

نکات کلیدی:

  • رمزگذاری بدون پیشوند: هیچ کدی پیشوند کد دیگری نیست، که باعث می‌شود رمزگشایی بدون ابهام انجام شود.
  • کدهای کوتاه‌تر برای حروف پرکاربرد: حروف پرکاربرد در انگلیسی مانند E, T, A, O, I, N کدهای باینری کوتاه‌تری دارند.
101010 111 001 010 111 000 111...

جدول کدگذاری

در جدول زیر، هر حرف الفبای انگلیسی با یک کد باینری منحصر به فرد نمایش داده شده است:

حرف کد باینری حرف کد باینری حرف کد باینری
A 1101 J 010000 S 01101
B 10110 K 10001 T 0101
C 0001 L 0111 U 10111
D 0110 M 11000 V 000001
E 111 N 1001 W 10101
F 00101 O 0011 X 001001
G 01001 P 11101 Y 0100001
H 00001 Q 11001 Z 11100
I 1010 R 10000 SPACE 00000

رمزگشایی دنباله باینری

برنامه زیر به شما کمک می‌کند تا دنباله‌های باینری را بر اساس جدول کدگذاری فوق رمزگشایی کنید:

نتیجه رمزگشایی:

نتیجه اینجا نمایش داده خواهد شد...

درباره پیاده‌سازی

این برنامه از یک الگوریتم رمزگشایی استفاده می‌کند که به صورت زیر عمل می‌کند:

  1. جدول کدگذاری را به صورت یک ساختار داده در JavaScript نگهداری می‌کنیم.
  2. دنباله باینری را از ابتدا می‌خوانیم و با بررسی کاراکترها، سعی می‌کنیم طولانی‌ترین توالی ممکن را که با یکی از کدها مطابقت دارد، شناسایی کنیم.
  3. پس از شناسایی یک کد، حرف معادل آن را به رشته نتیجه اضافه می‌کنیم.
  4. این فرآیند را تا زمانی که تمام دنباله باینری پردازش شود، ادامه می‌دهیم.