سلسلة حل المشكلات (Problem Sloving) اليوم الواحد و عشرين

التحدي رقم 21 لليوم رقم 21 من رمضان

اولا
كل عام و انتم بخير و اعاده الله عليكم بالمن و بالخير و البركه

كنا نقول اهلا و الان وداعا يا شهر الخير و العباده

و لا تنسي تجديد نيتك فأن طلب العلم عباده
لا تنسوني و اخي المعتقل سياسيا من جميل دعائكم في هذه الليالي العشر

وصف التحدي :

متنساش تدعي لخواتنا ف غزه لو لسه عندك قلب و شوية دم

**مستوي التحدي : **
متوسط برمجيا

قم بكتابة دالة اسمها: arrowDuplicates تستقبل متغير من نوع string يتكون من حروف، تقوم الدالة باستبدال الاحرف باحد الرمزين (>) و(<) بحيث اذا كان الحرف مكرر في الكلمة يتحول الى > واذا كان الحرف لا يتكرر يتحول الى <
حيث النتيجة للدالة تكون من نوع string

ملحوظه : تقدر تحل التحدي و تتحقق من صحته من خلال الموقع هنا اهو :
موقع سلسلة حل المشكلات (Problem Sloving)
بس خد بالك لو هتحل ع الموقع لازم اسم الداله يكون زي الاسم اللي موجود في وصف التحدي

أضغط لرؤية المخرجات المتوقعة عشان تتيست الكود بتاعك

الاختبار 1
المدخلات (Inputs)
word = ‘Hi’
المخرجات (Outputs)
‘>>’

الاختبار 2
المدخلات (Inputs)
word = ‘Bb’
المخرجات (Outputs)
‘<<’

الاختبار 3
المدخلات (Inputs)
word = ‘SAFCSP’
المخرجات (Outputs)
‘<>>><>’

الاختبار 4
المدخلات (Inputs)
word = ‘Java’
المخرجات (Outputs)
‘><><’

حل التحدي

def arrowDuplicates(word):
    new_word = word.lower()
    for i in range(len(new_word)):
        if i != 0:
            if (new_word[i] in new_word[i+1:]) or (new_word[i] in new_word[i-1::-1]):
                new_word = new_word.replace(new_word[i],"<")
            else:
                new_word = new_word.replace(new_word[i],">")
        else:
            if (new_word[i] in new_word[i+1:]):
                new_word = new_word.replace(new_word[i],"<")
            else:
                new_word = new_word.replace(new_word[i],">")

    return new_word

3 إعجابات

إعجابَين (2)


حضرتك كاتب الخرج الثالث خطأ و المشكلة دي كانت فعلا سهلة

إعجابَين (2)

كاتبهم غلط دي مشكلة في الموقع هنا هو اللي مشقلبها

المشكله اه اسهل من اخر 2 قولت عشان متتحبطوش

3 إعجابات

في بعض الملاحظات علي الكود :

الكود مش هيكتشف تكراك حرف لو مكتوب مره باكابتل و مره بالسمول و لذلك لازم نستخدم :

.lower()

او

.upper()

المهم نوحد شكل الحروف
علشان المقارنة تبقى بدون حساسية للحروف الكبيرة والصغيرة

ولذلك لو دخلت مثلا المدخل دا :
“AaBa”
هتلاقيه مش مكتشف انهم متكررين

زي المدخل التاني اصلا اللي انا كاتبه لو لحظت هتلاقيك مش مكتشف انهم متكررين رغم انهم هما حرفين b

3 إعجابات

يسطا انا عايز اتواصل معاك ازاي ؟