اذهب إلى المحتوى
  • 0

استفسار بخصوص مسألة على leetcode

Ail Ahmed

السؤال

السلام عليكم

ده سوال من موقع LeetCode بس انا هنا مش عاوز الحل السوال 

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

ولكن انا وفق عندي هو ليه الموقع LeetCode كتب كده 

def Solution(object):
    def TowSum(self.nums,target):
        """
        :type nums: List[int]
        type target:int
        rtype:List[int]
        """

وده السوال

هو ازي هنا كتب def tow sum مش المفروض يكتب __def__init ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

لأنه لا يوجد حاجة لكتابة دالة __init__ لأن هذا السؤال يتطلب تنفيذ دالة معينة داخل الكلاس لحل المشكلة فقط، والفرق هو أن الدالة __init__ تستخدم في الكلاس لتعريف الخصائص الأولية للكائن عند إنشائه فهي تمثل الـ constructor، وتستدعى تلقائيا عند إنشاء كائن جديد من الكلاس، حيث نستخدمها عادة لتعيين القيم الأولية للمتغيرات في الكلاس، أما هنا السؤال بسيط ويتطلب فقط تنفيذ دالة TwoSum التي تقوم بحساب النتيجة المطلوبة، لذا LeetCode يركز على الدالة التي تحل المشكلة، وليس على إنشاء كائنات بخصائص محددة من خلال __init__.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال Chihab Hedidi:

لأنه لا يوجد حاجة لكتابة دالة __init__ لأن هذا السؤال يتطلب تنفيذ دالة معينة داخل الكلاس لحل المشكلة فقط، والفرق هو أن الدالة __init__ تستخدم في الكلاس لتعريف الخصائص الأولية للكائن عند إنشائه فهي تمثل الـ constructor، وتستدعى تلقائيا عند إنشاء كائن جديد من الكلاس، حيث نستخدمها عادة لتعيين القيم الأولية للمتغيرات في الكلاس، أما هنا السؤال بسيط ويتطلب فقط تنفيذ دالة TwoSum التي تقوم بحساب النتيجة المطلوبة، لذا LeetCode يركز على الدالة التي تحل المشكلة، وليس على إنشاء كائنات بخصائص محددة من خلال __init__.

تمام بس هو كتاب self 

ليه كاتب self وليه فيه class اصلان ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ما كتبته غير صحيح، فما يظهر هو كلاس أي كالتالي عند حل المسألة:

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        

و twosum هي ميثود بداخل الكلاس لحل المسألة مباشرًة

تفقد المسألة هنا:

https://leetcode.com/problems/two-sum/

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال Ail Ahmed:

يعني اي ميثود ؟

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

في بايثون، الـ method هي دالة function مرتبطة بـ مُثيل instance (نسخة من الكلاس) من class، أي تعيش داخل كلاس وتعمل على بيانات ذلك المُثيل، ونستخدمها للتفاعل مع خصائص attributesومُثيلات الكلاس.

الفرق الرئيسي بين الدالة العادية والميثود هو أن الميثود تستقبل مُثيل الفئة كمعامل ضمني (implicit argument) يُسمى بشكل شائع باسم self وهو يُشير إلى المُثيل الذي تُستدعى عليه الميثود.

class Dog:
    def __init__(self, name, breed): 
        self.name = name
        self.breed = breed

    def bark(self):  
        print("Woof! My name is", self.name)

    def describe(self): 
        print(f"I am a {self.breed} named {self.name}")


my_dog = Dog("Buddy", "Golden Retriever")  
my_dog.bark()  
my_dog.describe()

__init__ هو مُنشئ constructor وهي ميثود خاصة لتهيئة مُثيلات الكلاس عند إنشائها.

bark و describe هما ميثودان تُنفذان على مُثيل my_dog،  لاحظ كيف يستخدمان self للوصول إلى خصائص المُثيل (self.name, self.breed).

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال Mustafa Suleiman:

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

في بايثون، الـ method هي دالة function مرتبطة بـ مُثيل instance (نسخة من الكلاس) من class، أي تعيش داخل كلاس وتعمل على بيانات ذلك المُثيل، ونستخدمها للتفاعل مع خصائص attributesومُثيلات الكلاس.

الفرق الرئيسي بين الدالة العادية والميثود هو أن الميثود تستقبل مُثيل الفئة كمعامل ضمني (implicit argument) يُسمى بشكل شائع باسم self وهو يُشير إلى المُثيل الذي تُستدعى عليه الميثود.

class Dog:
    def __init__(self, name, breed): 
        self.name = name
        self.breed = breed

    def bark(self):  
        print("Woof! My name is", self.name)

    def describe(self): 
        print(f"I am a {self.breed} named {self.name}")


my_dog = Dog("Buddy", "Golden Retriever")  
my_dog.bark()  
my_dog.describe()

__init__ هو مُنشئ constructor وهي ميثود خاصة لتهيئة مُثيلات الكلاس عند إنشائها.

bark و describe هما ميثودان تُنفذان على مُثيل my_dog،  لاحظ كيف يستخدمان self للوصول إلى خصائص المُثيل (self.name, self.breed).

تمام جدا جدا

شكرااا لحضرتك جدا

بتاريخ 9 دقائق مضت قال Mustafa Suleiman:

ما كتبته غير صحيح، فما يظهر هو كلاس أي كالتالي عند حل المسألة:

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        

و twosum هي ميثود بداخل الكلاس لحل المسألة مباشرًة

تفقد المسألة هنا:

https://leetcode.com/problems/two-sum/

بس هنا اي دور ال self ؟

ما  هنا مفيش __init__ ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...