Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะย้อนกลับคำสตริงที่กำหนดโดยคำแทนตัวอักษรโดยใช้ C # ได้อย่างไร


สร้างวิธีการย้อนกลับคำที่ใช้อาร์เรย์ถ่านเป็นอินพุตและสำหรับอักขระแต่ละตัวและทุกตัวจนกว่าจะถึงช่องว่างไม่ย้อนกลับคำ ในขั้นตอนสุดท้ายจะย้อนกลับสตริงทั้งหมดจากความยาว 0 ถึงความยาว n-1 ในขั้นตอนแรกสตริง "นี่คือหนังสือของฉัน" จะกลายเป็น "koob ym si siht" เมื่อสิ้นสุดขั้นตอนที่ 2 สตริงคำจะถูกเปลี่ยนกลับเป็น “book my is This”

ความซับซ้อนของเวลา − O(N)

ตัวอย่าง

using System;
namespace ConsoleApplication{
   public class Arrays{
      static void reverse(char[] str, int start, int end){
         char temp;
         while (start <= end){
            temp = str[start];
            str[start] = str[end];
            str[end] = temp;
            start++;
            end--;
         }
      }
      public char[] reverseWords(char[] s){
         int start = 0;
         for (int end = 0; end < s.Length; end++){
            if (s[end] == ' '){
               reverse(s, start, end);
               start = end + 1;
            }
         }
         reverse(s, 0, s.Length - 1);
         return s;
      }
   }
   class Program{
      static void Main(string[] args){
         Arrays a = new Arrays();
         string s = " This is my book ";
         var res = a.reverseWords(s.ToCharArray());
         Console.WriteLine(new String(res));
         Console.ReadLine();
      }
   }
}

ผลลัพธ์

book my is This