عَلی و سَلیب که با یکدیگر برادر هستند، تصمیم گرفتند یک بازی هیجانانگیز دو نفرهای را انجام دهند تا شاید آدرنالین خونشان افزایش پیدا کند.
بازی از این قرار است که عَلی و سَلیب، هر کدام یک رشته انتخاب میکنند. سپس حرف اول رشتهای که حرف اولش از لحاظ لغتنامهای کوچکتر است را حذف (اگر حرف اول دو رشته برابر بودند، حرف اول هر دو رشته را حذف میکنند.) و هر دو رشته را معکوس میکنند. این کار را تا جایی انجام میدهند که یکی از دو رشته یا هر دو رشته، خالی شوند.
حال شما باید تابع compare(string1, string2) (که string1 رشتهی انتخابی عَلی و string2 رشتهی انتخابی سَلیب است.) را به گونهای تکمیل کنید که:
- اگر در نهایت یکی از دو رشته خالی شده بود، محتویات رشتهی دیگر را بازگرداند.
- اگر در نهایت هر دو رشته خالی شده بودند؛ عبارت
Both strings are empty!را بازگرداند.
توجه کنید که اگر یکی از رشتهها خالی شد؛ رشتهی دیگر، نباید مجدداً معکوس شود.
def compare(string1, string2):
pass
نمونه ۱
>>> compare('ali', 'salib')
'las'
توضیحات نمونه ۱
ابتدا حرف اول هر دو رشته بررسی میشود. چون a از s کوچکتر است، پس a از ali حذف شده و ali به li تبدیل میشود. سپس هر دو رشته معکوس (li به il و salib به bilas) میشوند.
حال از بین دو رشتهی جدید، چون b از i کوچکتر است، پس b از bilas حذف شده و bilas به ilas تبدیل میشود. سپس هر دو رشته معکوس (il به li و ilas به sali) میشوند.
حال مجددا از بین دو رشتهی جدید، چون l از s کوچکتر است، پس l از li حذف شده و li به i تبدیل میشود. سپس هر دو رشته معکوس (i به i و sali به ilas ) میشوند.
در نهایت، از بین ۲ رشتهی جدید، چون i و i با یکدیگر برابر هستند، پس هر دو i حذف میشود و i به یک رشتهی خالی و ilas به las تبدیل میشوند و چون یکی از رشتهها، خالی شدهاند، محتوای رشتهی دیگر (که برابر las است.) بازگردانده میشود.
نمونه ۲
>>> compare('amin', 'nima')
'Both strings are empty!'
توضیحات نمونه ۲
ابتدا حرف اول هر دو رشته بررسی میشود. چون a از n کوچکتر است، پس a از amin حذف شده و amin به min تبدیل میشود. سپس هر دو رشته معکوس (min به nim و nima به amin) میشوند.
حال از بین دو رشتهی جدید، چون a از n کوچکتر است، پس a از amin حذف شده و amin به min تبدیل میشود. سپس هر دو رشته معکوس (nim به min و min به nim) میشوند.
حال مجددا از بین دو رشتهی جدید، چون m از n کوچکتر است، پس m از min حذف شده و min به in تبدیل میشود. سپس هر دو رشته معکوس (in به ni و nim به min ) میشوند.
دوباره از بین دو رشتهی جدید، چون m از n کوچکتر است، پس m از min حذف شده و min به in تبدیل میشود. سپس هر دو رشته معکوس (ni به in و in به ni) میشوند.
سپس از بین دو رشتهی جدید، چون i از n کوچکتر است، پس i از in حذف شده و in به n تبدیل میشود. سپس هر دو رشته معکوس (n به n و ni به in) میشوند.
مجددا از بین دو رشتهی جدید، چون i از n کوچکتر است، پس i از in حذف شده و in به n تبدیل میشود. سپس هر دو رشته معکوس (n به n و n به n) میشوند.
در نهایت، از بین ۲ رشتهی جدید، چون n و n با یکدیگر برابر هستند، پس هر دو n حذف میشود و n به یک رشتهی خالی و n دوم نیز به یک رشتهی خالی تبدیل میشوند و چون هر دو رشته، خالی شدهاند، عبارت Both strings are empty! بازگردانده میشود.
نکات
- میتوانید فایل اولیه این سوال را از این لینک دریافت کنید.
- تضمین میشود که رشتههای ورودی، تنها از حروف کوچک انگلیسی تشکیل شدهاند و شامل کاراکترهای Whitespace نیستند.
نحوه ارسال
شما باید تابع compare موجود در فایل moghayeseGar.py را تکمیل و سپس این فایل را ارسال کنید.
ارسال پاسخ برای این سؤال