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
2puClairotuT
- 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
5puClairotuT
- 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
5puClairotuT
- 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
2puClairotuT
- 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
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