من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین دوقلوهای افسانه‌ای و خرید گردنبند کوئرا با پایتون

حل تمرین دوقلوهای افسانه‌ای و خرید گردنبند کوئرا با پایتون
حل تمرین دوقلوهای افسانه‌ای و خرید گردنبند کوئرا با پایتون

حل تمرین دوقلوهای افسانه‌ای و خرید گردنبند کوئرا با پایتون

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

 

حل تمرین دوقلوهای افسانه‌ای و خرید گردنبند کوئرا با پایتون

پدر دوقلوهای افسانه‌ای می‌خواهد برای دو دخترش گردنبند بخرد. از آن‌جا که بین دو گردنبند تثلیث برقرار است (یعنی یا دو گردنبند کاملاً یکی هستند و یا یکی بهتر از دیگری است)، پدر باید دو گردنبند کاملاً یکسان خریداری کند تا دوقلوها به یکدیگر حسودی نکنند. به ازای حالت‌های مختلف بگویید دو گردنبند یکی هستند یا نه؟ دقت کنید چنانچه که یک گردنبند را بچرخانیم و یا آن را برعکس کنیم گردنبند ثابت باقی می‌ماند! توصیه می‌شود به مثال‌های نمونه توجه کنید.

 

ورودی

در خط اول عدد می‌آید که نشان دهنده تعداد جفت‌ گردنبندهای مدنظر پدر دوقلوهای افسانه‌ای است. سپس در هر کدام از t خط بعدی، یک جفت گردنبند مدنظر پدر با یک فاصله از هم می‌آید.

ورودی در تمرین دوقلوهای افسانه‌ای و خرید گردنبند

طول هر گردنبند حداکثر 7 و از حروف کوچک انگلیسی تشکیل شده است.

 

خروجی

به ترتیب برای هر جفتی که نشان دهنده دو گردنبند یکسان هستند، عبارت YES و در غیر این‌صورت عبارت NO را خروجی دهید. به بزرگ بودن حروف خروجی خود توجه کنید.

 

مثال

ورودی نمونه 1

6
ab abab
abc cba
gcd lcm
abc bca
lca lcs
abacb abcab

 

خروجی نمونه 1

NO
YES
NO
YES
NO
YES
  • در جفت اول چون طول دو گردنبند یکی نیست، آن‌ها با هم برابر نیستند.
  • در جفت دوم با برعکس کردن گردن بند دوم به گردن‌بندها برابر می‌شوند.
  • در جفت سوم  g در گردنبند اول هست ولی در دومی وجود ندارد.
  • در جفت چهارم با یک واحد شیفت دادن به چپ گردنبند اول به گردنبند دوم می‌رسیم.
  • در جفت پنجم a در گردنبند اول هست ولی در دومی نیست.
  • در جفت ششم با یک بار برعکس کردن رشته‌ی اول، و یک واحد شیفت دادن به راست، به رشته‌ی دوم می‌رسیم.

 

کد پایتون سوال تمرین دوقلوهای افسانه‌ای وخرید گردنبند

def can_strings_be_equal(s1, s2):
    if len(s1) != len(s2):
        return False

    concatenated = s1 + s1
    if s2 in concatenated:
        return True
    elif s2[::-1] in concatenated:
        return True
    else:
        return False

        
n = int(input())
answers = list()
for i in range(n):
    line = input().split()
    a = line[0]
    b = line[1]
    ans = ""
    
    if (can_strings_be_equal(a, b) == True):
        ans = "YES"
    else:
        ans = "NO"
    answers.append(ans)
        
for i in range(len(answers)):
    print(answers[i])

 

منبع سوال: کوئرا

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]