แบบฝึกหัด - สตริงที่ส่งกลับจากวิธีการ

เสร็จสมบูรณ์เมื่อ

คุณอาจพบว่าคุณจําเป็นต้องเขียนเมธอดที่ส่งกลับสตริงอยู่บ่อย ๆ ตัวอย่างเช่น คุณอาจต้องการเรียกใช้สตริงจากชุดข้อมูลหรือปรับเปลี่ยนสตริงด้วยวิธีใดวิธีหนึ่ง ในแบบฝึกหัดนี้คุณจะได้รับประสบการณ์ในการทํางานกับสตริงในวิธีในขณะที่ฝึกคําถามการสัมภาษณ์ทั่วไป

สร้างวิธีการที่ส่งกลับสตริง

สมมติว่าคุณเป็นผู้สมัครในการสัมภาษณ์เรื่องการเข้ารหัส ผู้สัมภาษณ์ขอให้คุณเขียนวิธีการ เพื่อกลับรายการสตริงโดยไม่ใช้string.Reverse ใช้เวลาสักครู่เพื่อคิดถึงวิธีที่คุณอาจทํางานนี้ให้สําเร็จ

คุณอาจตัดสินใจว่าคุณสามารถย้อนกลับสตริงโดยวนซ้ําจากจุดสิ้นสุดของสตริง คุณสามารถใช้สตริงชั่วคราวเพื่อจัดเก็บจดหมายแต่ละตัวตั้งแต่ต้นจนจบ มาเริ่มต้นกันเลย!

  1. ใน Visual Studio Code Editor ให้ลบโค้ดที่มีอยู่ออกจากแบบฝึกหัดก่อนหน้า

  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. ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่ 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

  3. หากจําเป็น ให้เปิดแผงเทอร์มินัลแบบรวมของ Visual Studio Code

    ในแผง EXPLORER หากต้องการเปิดเทอร์มินัลที่ตําแหน่งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม

  4. ที่พร้อมท์คําสั่งเทอร์มินัล ให้ใส่ dotnet ทํางาน

  5. ตรวจสอบว่าโค้ดของคุณสร้างเอาต์พุตต่อไปนี้:

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

    หากรหัสของคุณแสดงผลลัพธ์ที่แตกต่างกัน คุณจะต้องตรวจสอบรหัสของคุณเพื่อค้นหาข้อผิดพลาดและทําการอัปเดต เรียกใช้รหัสอีกครั้งเพื่อดูว่าคุณได้แก้ไขปัญหาหรือไม่ อัปเดตและเรียกใช้โค้ดของคุณต่อจนกว่ารหัสของคุณจะสร้างผลลัพธ์ที่คาดหวัง