تمرين - إرجاع السلاسل من الأساليب

مكتمل

قد تجد في كثير من الأحيان أنك بحاجة إلى كتابة أسلوب يرجع سلسلة. على سبيل المثال، قد تحتاج إلى استرداد سلسلة من مجموعة من البيانات أو تعديل سلسلة بطريقة ما. في هذا التمرين، ستكتسب بعض الخبرة في العمل مع السلاسل في الأساليب أثناء ممارسة سؤال مقابلة شائع.

إنشاء أسلوب يقوم بإرجاع سلسلة

لنفترض أنك مرشح في مقابلة ترميز. يطلب منك المحاور كتابة أسلوب لعكس سلسلة دون استخدام string.Reverse. خذ لحظة للتفكير في كيفية إنجاز هذه المهمة.

ربما قررت أنه يمكنك عكس سلسلة بالتكرار من نهاية السلسلة. يمكنك استخدام سلسلة مؤقتة لتخزين كل حرف من البداية إلى النهاية. لنبدأ!

  1. في محرر Visual Studio Code، احذف أي تعليمة برمجية موجودة من التدريبات السابقة.

  2. أدخل التعليمات البرمجية التالية في المحرر:

    string ReverseWord(string word) 
    {
        string result = "";
    
        return result;
    }
    
  3. يحتاج الأسلوب إلى التكرار من خلال الكلمة المحددة وتحديث النتيجة. للقيام بذلك، قم بتحديث ReverseWord الأسلوب بالتعليمات البرمجية التالية:

    string ReverseWord(string word) 
    {
        string result = "";
        for (int i = word.Length - 1; i >= 0; i--) 
        {
            result += word[i];
        }
        return result;
    }
    

    في كتلة التعليمات البرمجية هذه، تبدأ من نهاية الكلمة باستخدام word.Length - 1. يمكنك طرح واحد من الطول نظرا لأن فهارس الصفيف تبدأ من الصفر، وتريد تجنب الوصول إلى عنصر خارج الحدود. ثم تقوم بإضافة الحرف في الفهرس الحالي إلى result السلسلة ونقل الفهرس للخلف. يمكنك استخدام i >= 0 لأنه i يتم تحديث بعد تنفيذ التعليمات البرمجية في الحلقة، وتريد التأكد من تضمين الفهرس الصفري.

تحقق من الكود

عند كتابة التعليمات البرمجية، من المهم التحقق بشكل متكرر من عملك. يتيح لك العثور على الأخطاء وتصحيحها في وقت مبكر من عملية الترميز قضاء المزيد من الوقت في البناء على التعليمات البرمجية الصحيحة بدلا من تصحيح أحد البرامج الكبيرة. يعد التحقق من عملك بشكل متكرر مهارة يقدرها القائمون على برمجة المقابلات بشكل كبير أيضا.

  1. أدخل سطر تعليمة برمجية فارغا جديدا. ثم قم بإنشاء بعض نص الإدخال واستدعاء الأسلوب الخاص بك عن طريق إدخال التعليمات البرمجية التالية فوق ReverseWord الأسلوب :

    string input = "snake";
    
    Console.WriteLine(input);
    Console.WriteLine(ReverseWord(input));
    
  2. إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.

  3. في موجه الأوامر Terminal، أدخل dotnet run. قارن الإخراج الخاص بك مع ما يلي:

    snake
    ekans
    

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

إنشاء أسلوب لعكس الكلمات في جملة

لنفترض أن المحاور يسألك سؤال متابعة. يريدون منك عكس كل كلمة في جملة معينة، مع الحفاظ على الموضع الأصلي لكل كلمة. يمكنك افتراض أن كل كلمة مفصولة بمسافة. على سبيل المثال، سيصبح "نوع إرجاع السلسلة" "gnirts nruter epyt". خذ لحظة للتفكير في كيفية تنفيذ هذه المهمة.

إذا كنت تستخدم الأسلوب الذي كتبته في المهمة السابقة، فقد تدرك أنه يمكنك استخدام الأسلوب لعكس كل كلمة في السلسلة بشكل فردي. يمكنك إنشاء جملة جديدة وإضافة كل كلمة أثناء عكسها. لنبدأ!

  1. إنشاء سطر تعليمة برمجية فارغ جديد في نهاية البرنامج الحالي. ثم أدخل التعليمات البرمجية التالية لإنشاء أسلوب جديد:

    string ReverseSentence(string input) 
    {
        string result = "";
    
        return result;
    }
    
  2. بعد ذلك، يمكنك استخراج الكلمات الفردية من السلسلة باستخدام string.Split. ReverseSentence تحديث الأسلوب إلى ما يلي:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        return result;
    }
    

    الآن بعد أن أصبح لديك حق الوصول إلى كل كلمة فردية في الجملة، يمكنك استخدام الأسلوب الخاص بك ReverseWord على كل كلمة وتخزينها في result.

  3. ReverseSentence تحديث الأسلوب إلى ما يلي:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        foreach(string word in words) 
        {
            result += ReverseWord(word) + " ";
        }
    
        return result;
    }
    

    لاحظ كيف يمكنك استدعاء ReverseWord الأسلوب داخل عامل تشغيل تعيين مركب. في هذه التعليمة البرمجية، يتم التقاط القيمة المرجعة من ReverseWord وإضافتها إلى result. يمكن استخدام الأساليب ذات القيم المرجعة في أي مكان تحتاجه، طالما أن نوع البيانات يناسب المتطلبات.

    في هذه التعليمة البرمجية، يتم إلحاق كل كلمة معكوسة بالنتيجة بمسافة إضافية. ومع ذلك، يترك هذا مساحة إضافية في نهاية الجملة المعكوسة.

  4. يمكنك إزالة المساحة الإضافية في النهاية باستخدام string.Trim. تحديث الأسلوب إلى التعليمات البرمجية التالية:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        foreach(string word in words) 
        {
            result += ReverseWord(word) + " ";
        }
    
        return result.Trim();
    }
    

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

    الآن أنت مستعد لاستدعاء الأسلوب الخاص بك!

  5. input تحديث النص والعقبة Console.WriteLine إلى ما يلي:

    string input = "there are snakes at the zoo";
    
    Console.WriteLine(input);
    Console.WriteLine(ReverseSentence(input));
    

تحقق من عملك

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

  1. قارن التعليمات البرمجية بما يلي للتأكد من صحتها:

    string input = "there are snakes at the zoo";
    
    Console.WriteLine(input);
    Console.WriteLine(ReverseSentence(input));
    
    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
        foreach(string word in words) 
        {
            result += ReverseWord(word) + " ";
        }
        return result.Trim();
    }
    
    string ReverseWord(string word) 
    {
        string result = "";
        for (int i = word.Length - 1; i >= 0; i--) 
        {
            result += word[i];
        }
        return result;
    }
    
  2. احفظ عملك باستخدام Ctrl + S أو باستخدام قائمة Visual Studio Code File.

  3. إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.

    في لوحة EXPLORER، لفتح Terminal في موقع مجلد TestProject، انقر بزر الماوس الأيمن فوق TestProject، ثم حدد Open in Integrated Terminal.

  4. في موجه الأوامر Terminal، أدخل dotnet run

  5. تحقق من أن التعليمات البرمجية الخاصة بك تنتج الإخراج التالي:

    there are snakes at the zoo
    ereht era sekans ta eht ooz 
    

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