تحديات بايثون...تحدي الرسالة

هذا التحدي أخذته من هذا المنتدى…قراته بسرعة ولم أدقق في تفاصيله…لكن بحثت عنه مجددا فلم اجده …نسيت العنوان…المهم الفكرة بسيطة وهي تكرار حروف الرسالة بعدد الأرقام التي بداخلها…
2a3b…النتيجة تكون aabbb
a3b2…النتيجة aaabb
طبعا هناك العديد من الحالات التي يجب مراعاتها…مثلا رسالة تنتهي برقم…او بحرف…كيف سيتم تكرار الحرف؟؟؟
انا حليت التحدي وهو كود طويل ويبدو معقد…اظنني لست في مستوى كافي لأطور في الحل…لكني راض باني استطعت حل التحدي ولله الحمد…
من يعرف المنشور الذي ذكر فيه التحدي فليطلعنا عليه…

# challenge13: رسالة يتم تكرار حروفها وفقا للارقام التي بداخلها..مع العديد من الحالات الخاصة

def message_play(MESSAGE="2a3b4cde2"):
    new_message = ""
    curr_message = ""
    loop_current = []
    
    if any (i.isdigit() for i in MESSAGE) == False:
        return f"The same message:\n {MESSAGE}"
    
    #رسالة تبدأ برقم 
    if MESSAGE[0].isdigit():
        
        for i in MESSAGE:

            if i.isdigit():
                loop_current.append(int(i))
                new_message += curr_message*loop_current[0]
                loop_current = [int(i)]
                curr_message = ""

            else:
                curr_message += i
        

        if not MESSAGE[-1].isdigit():
            new_message += curr_message*loop_current[0]


    # رسالة تبدأ بحرف
    else:

        for i in MESSAGE:

            if not i.isdigit():
                curr_message += i

            else:
                new_message += curr_message*int(i)
                curr_message = ""
        
        if not MESSAGE[-1].isdigit():
            new_message += curr_message
    

    return f"This is your new message:\n {new_message}"


print(message_play())
إعجابَين (2)

هذا هو الموضوع : تحدي في بايثون لفل اعلي مت اللي فات

إعجابَين (2)

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

3 إعجابات

هـهـهـهـهـهـهـه :joy::joy: .

إعجاب واحد (1)

لدي نفس المشكل الاكواد الطويلة :smirk: :smirk:

إعجابَين (2)