Hướng dẫn reverse string c++ - ngược chuỗi c ++

Cách "phổ biến" nhất để đảo ngược một chuỗi trong JavaScript là đoạn mã sau, khá phổ biến:

function reverseString[str] {

return str.split[' '].reverse[].join[' '];

}

reverseString['string'];  // "gnirts"

Tuy nhiên, điều này sẽ chỉ hoạt động miễn là chuỗi được đảo ngược không chứa các cặp thay thế. Các ký hiệu linh hồn, tức là các ký tự bên ngoài bình diện đa ngôn ngữ cơ bản, có thể được biểu thị bằng hai đơn vị mã và sẽ dẫn đến kỹ thuật ngây thơ này tạo ra kết quả sai. Hơn nữa, các ký tự có dấu kết hợp [ví dụ: diaeresis] sẽ xuất hiện trên ký tự logic "tiếp theo" thay vì ký tự ban đầu mà nó được kết hợp 

'?????.'.split[''].reverse[].join['']; // fails

Mặc dù phương pháp sẽ hoạt động tốt với hầu hết các ngôn ngữ, nhưng một thuật toán thực sự chính xác, tôn trọng mã hóa để đảo ngược chuỗi có liên quan nhiều hơn một chút. Một trong những cách triển khai như vậy là một thư viện nhỏ có tên Esrever, sử dụng các biểu thức chính quy để so khớp các dấu kết hợp và các cặp thay thế nhằm thực hiện việc đảo ngược một cách hoàn hảo.

Phần

Giải thích

Kết quả

str 

Chuỗi đầu vào

"string"

String.prototype.split[deliminator]

Tách chuỗi str thành một mảng. Tham số "" có nghĩa là phân chia giữa mỗi ký tự.

["s","t","r","i","n","g"]

Array.prototype.reverse[]

Trả về mảng từ chuỗi đã tách với các phần tử của nó theo thứ tự ngược lại.

["g","n","i","r","t","s"]

Array.prototype.join[deliminator]

Nối các phần tử trong mảng với nhau thành

một chuỗi. Tham số "" có nghĩa là trống

dấu phân tách [tức là, các phần tử của mảng được đặt ngay cạnh nhau]

"gnirts"

  • Sử dụng toán tử spread

Phiên bản ≥ 6

function reverseString[str] {

return [...String[str]].reverse[].join[''];

}

reverseString['string'];  // "gnirts"

Tuy nhiên, điều này sẽ chỉ hoạt động miễn là chuỗi được đảo ngược không chứa các cặp thay thế. Các ký hiệu linh hồn, tức là các ký tự bên ngoài bình diện đa ngôn ngữ cơ bản, có thể được biểu thị bằng hai đơn vị mã và sẽ dẫn đến kỹ thuật ngây thơ này tạo ra kết quả sai. Hơn nữa, các ký tự có dấu kết hợp [ví dụ: diaeresis] sẽ xuất hiện trên ký tự logic "tiếp theo" thay vì ký tự ban đầu mà nó được kết hợp 

'?????.'.split[''].reverse[].join['']; // fails

  • Mặc dù phương pháp sẽ hoạt động tốt với hầu hết các ngôn ngữ, nhưng một thuật toán thực sự chính xác, tôn trọng mã hóa để đảo ngược chuỗi có liên quan nhiều hơn một chút. Một trong những cách triển khai như vậy là một thư viện nhỏ có tên Esrever, sử dụng các biểu thức chính quy để so khớp các dấu kết hợp và các cặp thay thế nhằm thực hiện việc đảo ngược một cách hoàn hảo.

Phần

Giải thích

Kết quả

Chuỗi đầu vào

}

reverseString['string'];  // "gnirts"

}

Tuy nhiên, điều này sẽ chỉ hoạt động miễn là chuỗi được đảo ngược không chứa các cặp thay thế. Các ký hiệu linh hồn, tức là các ký tự bên ngoài bình diện đa ngôn ngữ cơ bản, có thể được biểu thị bằng hai đơn vị mã và sẽ dẫn đến kỹ thuật ngây thơ này tạo ra kết quả sai. Hơn nữa, các ký tự có dấu kết hợp [ví dụ: diaeresis] sẽ xuất hiện trên ký tự logic "tiếp theo" thay vì ký tự ban đầu mà nó được kết hợp 

'?????.'.split[''].reverse[].join['']; // fails

Mặc dù phương pháp sẽ hoạt động tốt với hầu hết các ngôn ngữ, nhưng một thuật toán thực sự chính xác, tôn trọng mã hóa để đảo ngược chuỗi có liên quan nhiều hơn một chút. Một trong những cách triển khai như vậy là một thư viện nhỏ có tên Esrever, sử dụng các biểu thức chính quy để so khớp các dấu kết hợp và các cặp thay thế nhằm thực hiện việc đảo ngược một cách hoàn hảo.

  • puClairotuT
    2
    puClairotuT
    • Chỉ in ngược
  • Thuật toán đảo ngược một chuỗi
    • Phân tích độ phức tạp
    • Phân tích độ phức tạp
      • Thời gian phức tạp
      • Không gian phức tạp
    • Mã để đảo ngược một chuỗi
      • Chương trình C ++
      • puClairotuT
        5
        puClairotuT
  • Sử dụng mảng ký tự
    • Phân tích độ phức tạp
    • Phân tích độ phức tạp
      • Thời gian phức tạp
      • Không gian phức tạp
    • Mã để đảo ngược một chuỗi
      • puClairotuT
        5
        puClairotuT
      • Chương trình Java
  • Chỉ in ngược
    • Thuật toán đảo ngược một chuỗi
    • Phân tích độ phức tạp
      • Thời gian phức tạp
      • Không gian phức tạp
    • Mã để đảo ngược một chuỗi
      • Chương trình C ++
      • Chương trình Java
  • puClairotuT
    2
    puClairotuT
    • Thuật toán đảo ngược một chuỗi
    • Phân tích độ phức tạp
      • Thời gian phức tạp
      • Không gian phức tạp
    • Mã để đảo ngược một chuỗi
      • Chương trình C ++
      • Chương trình Java

puClairotuT
2
puClairotuT

Chỉ in ngược

Chỉ in ngược

Thuật toán đảo ngược một chuỗi

TutorialCup
puClairotuT
Akshita
atihskA

Thuật toán đảo ngược một chuỗi

Phân tích độ phức tạp

1. Initialise a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Traverse through the string and swap the starting letter with ending letter until mid is reached.
4. Return the reversed string variable.

Phân tích độ phức tạp

Thời gian phức tạp

O [n] trong đó n là số nhân vật trong từ đã cho. với n là số ký tự trong từ đã cho. Vì chúng tôi chỉ duyệt qua đầu vào.

Không gian phức tạp

O [1] bởi vì chúng tôi đã sử dụng không gian thừa không đổi. bởi vì chúng tôi đã sử dụng không gian thừa không đổi. Chúng tôi không tạo bất kỳ chuỗi hoặc mảng tạm thời nào.

Mã để đảo ngược một chuỗi

Chương trình C ++

#include  
using namespace std; 
  
string reverse[string s]{ 
    int l = s.length[]; 
  
    for[int i=0; i

Bài Viết Liên Quan

Chủ Đề