Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để đảo ngược một chuỗi nhất định từng từ thay vì các chữ cái bằng C #?

Tạo một phương thức đảo ngược Các từ lấy mảng char làm đầu vào và cho mỗi và mọi ký tự cho đến khi không đạt đến khoảng trống sẽ đảo ngược từ đó. Ở bước cuối cùng, đảo ngược toàn bộ chuỗi từ độ dài 0 đến độ dài n-1. Trong bước đầu tiên, chuỗi “Đây là cuốn sách của tôi” sẽ được chuyển thành “koob ym si siht”. Ở cuối bước thứ hai, các từ trong chuỗi sẽ được đảo ngược thành “book my is This”

Độ phức tạp về thời gian - O (N)

Ví dụ

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();
      }
   }
}

Đầu ra

book my is This