"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مشكلة HackerRank في Python - قوائم أنواع البيانات الأساسية

مشكلة HackerRank في Python - قوائم أنواع البيانات الأساسية

تم النشر بتاريخ 2024-11-06
تصفح:285

Problema HackerRank em Python - Base Data Types Lists

تم تصميم كود Python هذا لتنفيذ سلسلة من العمليات على قائمة بناءً على الأوامر المقدمة من المستخدم. دعونا نحلل الكود خطوة بخطوة لفهم كيفية عمله:

if __name__ == '__main__':
    N = int(input())
    l = []
    while(N>0):
        cmd_l = input().split()
        if(len(cmd_l) == 3 and cmd_l[0] == "insert"):
            #insert statement
            l.insert(int(cmd_l[1]),int(cmd_l[2]))
        elif(len(cmd_l) == 2 and (cmd_l[0] == "remove" or cmd_l[0] == "append")):
            if(cmd_l[0] == "remove"):
                l.remove(int(cmd_l[1]))
            elif(cmd_l[0] == "append"):
                l.append(int(cmd_l[1]))
        elif(len(cmd_l) == 1):
            if(cmd_l[0] == "sort"):
                l.sort()
            elif(cmd_l[0] == "reverse"):
                l.reverse()
            elif(cmd_l[0] == "pop"):
                l.pop()                
            elif(cmd_l[0] == "print"):
                print(l)
        N -= 1

إذا __name__ == '__main__':

  • يتحقق هذا السطر مما إذا كان يتم تنفيذ البرنامج النصي مباشرة. الممارسة المعتمدة للتأكد من أن التعليمات البرمجية الموجودة في هذه الكتلة لن يتم تنفيذها إلا إذا كان الملف هو نقطة دخول البرنامج.

N = int(input())

  • يتوقع البرنامج من المستخدم إدخال عدد صحيح مخزن في المتغير N. يمثل هذا الرقم عدد العمليات التي سيقوم بها المستخدم.

ل = []

  • قائمة فارغة تستخدم لتخزين العناصر أثناء تنفيذ العمليات.

بينما (N>0):

  • يتم بدء حلقة بينما ستستمر في العمل طالما أن N أكبر من 0. وهذا يعني أن الحلقة ستنفذ N مرات، مرة واحدة لكل عملية يريد المستخدم تنفيذها.

cmd_l = input().split()

  • ينتظر البرنامج داخل الحلقة قيام المستخدم بإدخال سطر من النص، مقسم إلى قائمة من السلاسل (cmd_l) باستخدام طريقة Split(). يمثل كل عنصر في قائمة cmd_l جزءًا من العملية المطلوب تنفيذها.

if(len(cmd_l) == 3 و cmd_l[0] == "إدراج"):

  • يتحقق هذا السطر مما إذا كانت العملية عبارة عن أمر "إدراج" مكون من ثلاثة أجزاء (يجب أن يكون طول cmd_l 3 ويجب أن يكون العنصر الأول "إدراج").

l.insert(int(cmd_l[1]),int(cmd_l[2]))

  • إذا كان الشرط أعلاه صحيحًا، فسيتم استدعاء طريقة الإدراج للقائمة l. يتم تحويل الوسائط من سلسلة إلى عدد صحيح: cmd_l[1] هو الموضع الذي سيتم إدراج العنصر فيه، وcmd_l[2] هو العنصر الذي سيتم إدراجه.

elif(len(cmd_l) == 2 و (cmd_l[0] == "إزالة" أو cmd_l[0] == "إلحاق")):

  • يتحقق هذا السطر مما إذا كانت العملية عبارة عن أمر "إزالة" أو "إلحاق" مكون من جزأين، ويجب أن يكون cmd_l بطول 2 ويجب أن يكون العنصر الأول "إزالة" أو "إلحاق".

if(cmd_l[0] == "إزالة"):
l.remove(int(cmd_l[1]))
إليف(cmd_l[0] == "إلحاق"):
l.append(int(cmd_l[1]))

  • اعتمادًا على الأمر (إزالة أو إلحاق)، يتم استدعاء الطريقة المقابلة من القائمة l. للإزالة، تتم إزالة العنصر cmd_l (الذي تم تحويله إلى عدد صحيح) من القائمة. للإلحاق، يتم إضافة العنصر cmd_l[[1](المحول إلى عدد صحيح) إلى نهاية القائمة.

أليف(لين(cmd_l) == 1):

  • يتحقق مما إذا كانت العملية عبارة عن أمر من جزء واحد (يجب أن يكون طول cmd_l 1).

if(cmd_l[0] == "فرز"):
l.sort()
إليف(cmd_l[0] == "عكسي"):
l.reverse()
إليف(cmd_l[0] == "البوب"):
l.pop()
إليف(cmd_l[0] == "طباعة"):
طباعة (ل)

  • اعتمادًا على الأمر (الفرز أو العكس أو البوب ​​أو الطباعة)، يتم استدعاء الطريقة المقابلة من القائمة l. يقوم الفرز بفرز القائمة، وعكس ترتيب العناصر، وإزالة العنصر الأخير، وطباعة طباعة القائمة.

ن -= 1

  • في نهاية الحلقة، يتم تقليل N بمقدار 1، مما يشير إلى أنه تم تنفيذ العملية. يستمر هذا حتى تصبح N 0، عند انتهاء الحلقة.
بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/gusmedeirost/problema-hackerrank-em-python-base-data-types-lists-5h91?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3