.لینک‌های مفید برای شرکت در مسابقه:

می‌توانید سوال‌های خود را از بخش "سوال بپرسید" مطرح کنید.

فشرده‌سازی خاص


  • محدودیت زمان: ۰.۵ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

در دیجی‌کال‍ا برای ذخیره‌سازی برخی از رشته‌های عددی از نوعی فشرده‌سازی استفاده می‌شود تا کسی نتواند از خروجی تولید شده به رشته‌ی عددی اصلی دست پیدا کند. البته ما در این‌جا از این نکته که این روش تصادم دارد؛ به این معنا که چند ورودی مختلف ممکن است خروجی یکسانی تولید کنند، چشم‌پوشی می‌کنیم! لازم به ذکر است که رشته‌ی عددی فقط شامل ارقام ۰ تا ۹ است. الگوریتم به این صورت است که تعداد تکرار همه‌ی ارقام رشته را حساب می‌کند، ارقام تکراری را حذف می‌کند و تعداد تکرار هر رقم (با شرط این که حداقل ۲ بار تکرار شده باشد) را در رشته ورودی می‌نویسد و در نهایت رشته‌ی عددی را به صورت صعودی مرتب می‌کند. این کار روی خروجی به دست آمده مجدد تکرار می شود و آنقدر ادامه دارد تا خروجی نهایی با خروجی مرحله‌ی قبل تفاوتی نکند.

ورودی🔗

تنها عبارت ورودی رشته عددی مورد نظر است که می‌خواهیم آن را فشرده کنیم. طول این رشته حداقل یک و حداکثر 1 0001\ 000 رقم است.

خروجی🔗

تنها عبارت خروجی، عبارت فشرده شده نهایی است.

مثال🔗

ورودی نمونه 1

442254545
Plain text

خروجی نمونه 1

22345
Plain text

در این مثال رقم 4، 4 بار تکرار شده است و رقم‌های 2 و 5 هم به ترتیب 2 و 3 بار تکرار شده‌اند. رقم‌های تکراری حذف می‌شوند و فقط یکی از آن‌ها در رشته باقی می‌ماند، بنابراین رشته‌ی 425 باقی می‌ماند. سپس تعداد تکرار هر رقم در ادامه‌ی رشته نوشته می‌شود، بنابراین رشته‌ی 425423 ایجاد می‌شود و در نهایت ارقام به صورت صعودی مرتب می‌شوند که در این جا 223445 حاصل می شود. مجدداً عملیات فشرده‌سازی روی این رشته‌ی حاصل‌شده اعمال می‌شود و نتیجه‌ی آن 222345 می‌شود. یک بار دیگر عملیات فشرده‌سازی اعمال می‌شود و نتیجه‌ی آن 23345 می‌شود و با اعمال مجدد این الگوریتم خروجی 22345 حاصل می‌شود که دیگر قابل فشرده سازی نیست.

ورودی نمونه 2

2223
Plain text

خروجی نمونه 2

223
Plain text

ورودی نمونه 3

4321
Plain text

خروجی نمونه 3

1234
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.