عَلی و سَلیب که با یکدیگر برادر هستند، تصمیم گرفتند یک بازی هیجانانگیز دو نفرهای را انجام دهند تا شاید آدرنالین خونشان افزایش پیدا کند.
بازی از این قرار است که عَلی و سَلیب، هر کدام یک رشته انتخاب میکنند. سپس حرف اول رشتهای که حرف اولش از لحاظ لغتنامهای کوچکتر است را حذف (اگر حرف اول دو رشته برابر بودند، حرف اول هر دو رشته را حذف میکنند.) و هر دو رشته را معکوس میکنند. این کار را تا جایی انجام میدهند که یکی از دو رشته یا هر دو رشته، خالی شوند.
حال شما باید تابع 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
را تکمیل و سپس این فایل را ارسال کنید.
ارسال پاسخ برای این سؤال