Chuyển đến nội dung

Công Cụ Đảo Ngược Văn Bản: Đảo Ngược Ký Tự Ngay Lập Tức

Công cụ đảo ngược văn bản trực tuyến miễn phí để đảo ngược bất kỳ chuỗi nào ngay lập tức. Đảo ký tự, kiểm tra palindrome và tạo văn bản ngược. Hoạt động với Unicode, biểu tượng cảm xúc và tất cả các ngôn ngữ.

Công Cụ Đảo Ngược Văn Bản

Nhập hoặc dán bất kỳ văn bản nào bên dưới để ngay lập tức đảo ngược thứ tự ký tự. Xem kết quả theo thời gian thực khi bạn gõ.

Máy tính tải...
📚

Tài liệu hướng dẫn

Trình đảo ngược văn bản là gì?

Trình đảo ngược văn bản là công cụ đảo ngược thứ tự các ký tự trong một đoạn văn bản. Gõ "hello" sẽ cho ra "olleh". Công cụ hoạt động bằng cách viết từng ký tự của đầu vào theo thứ tự ngược lại, từ ký tự cuối đến ký tự đầu. Người dùng có thể sử dụng công cụ này để tạo văn bản đảo ngược, kiểm tra xem một từ có phải là palindrome hay không, hoặc tìm hiểu cách hoạt động của phép đảo chuỗi trong lập trình.

Cách sử dụng trình đảo ngược văn bản

  1. Nhập hoặc dán văn bản vào ô đầu vào.
  2. Văn bản đảo ngược xuất hiện bên dưới ngay khi ngừng gõ. Không cần nhấn nút.
  3. Nhấn nút sao chép để sao chép kết quả.

Nút đặt lại sẽ xóa cả phần nhập và kết quả. Công cụ chấp nhận tối đa 10.000 ký tự; phần nhập dài hơn sẽ hiển thị thông báo lỗi yêu cầu rút ngắn văn bản. Số lượng được tính theo các ký tự hiển thị, vì vậy một emoji được tính là một ký tự dù máy tính lưu trữ nó thành nhiều phần.

Công thức đảo ngược văn bản

Với một chuỗi có độ dài n, gồm các ký tự c1c2…cnc_1 c_2 \dots c_n, chuỗi đảo ngược là:

S′=cncn−1…c2c1S' = c_n c_{n-1} \dots c_2 c_1

Nói đơn giản, ký tự cuối cùng trở thành ký tự đầu tiên, ký tự áp chót trở thành ký tự thứ hai, và tiếp tục như vậy cho đến khi ký tự đầu tiên trở thành ký tự cuối cùng.

Thuật toán hoạt động như thế nào, từng bước một

  1. Bắt đầu với một kết quả trống.
  2. Lấy ký tự cuối cùng của phần nhập và thêm vào kết quả.
  3. Lấy ký tự kế cuối và thêm vào.
  4. Lặp lại cho đến khi mọi ký tự đều được thêm vào theo thứ tự ngược.

Hầu hết các công cụ đảo ngược xử lý từng ký tự máy tính riêng lẻ. Thay vào đó, công cụ này nhóm mỗi emoji, cờ và chữ cái có dấu thành một đơn vị trước khi đảo ngược, bằng phương pháp gọi là phân đoạn cụm grapheme. Phần dưới đây giải thích vì sao điều đó quan trọng.

Ví dụ minh họa

Đầu vào: Hello, World!

Đảo ngược: !dlroW ,olleH

Mỗi ký tự, bao gồm dấu phẩy, khoảng trắng và dấu chấm than, vẫn giữ nguyên đặc điểm của nó. Chỉ có thứ tự thay đổi.

Xử lý emoji, dấu và các ký tự Unicode khác

Máy tính thường lưu trữ một ký tự hiển thị duy nhất, chẳng hạn như emoji hoặc chữ cái có dấu, dưới dạng nhiều đơn vị nhỏ gọi là điểm mã. Phương pháp đảo ngược các đơn vị đó từng cái một mà không xét đến những đơn vị nào thuộc cùng một ký tự có thể làm ký tự bị tách rời.

Ví dụ, "Hello 👍" chứa một emoji ngón tay cái giơ lên được tạo thành từ một cặp đơn vị ẩn. Phép đảo ngược cơ bản theo từng đơn vị có thể tách cặp này và tạo ra các ký hiệu bị hỏng thay vì emoji. Công cụ này tránh vấn đề đó bằng cách xem mỗi emoji, cờ và chữ cái có dấu là một đơn vị, vì vậy "Hello 👍" được chuyển chính xác thành "👍 olleH". Emoji cờ, được tạo thành từ hai ký hiệu ẩn đại diện cho mã quốc gia, cũng được giữ nguyên: "🇺🇸 USA" được đảo thành "ASU 🇺🇸" thay vì bị tách rời.

Các ứng dụng phổ biến

  • Kiểm tra palindrome: một palindrome đọc xuôi hay ngược đều giống nhau, chẳng hạn như "racecar". So sánh một từ với phiên bản đảo ngược của nó là một cách để kiểm tra điều này.
  • Học lập trình: đảo ngược một chuỗi là bài tập phổ biến để thực hành vòng lặp, mảng và ngăn xếp.
  • Trò chơi chữ và câu đố: các từ đảo ngược được dùng để che giấu thông điệp trong câu đố và phòng thoát hiểm.
  • Hiệu ứng thiết kế: một số nhà thiết kế đảo ngược văn bản để tạo logo đối xứng hoặc hiệu ứng thị giác.
  • Gỡ lỗi: so sánh văn bản xuôi và văn bản đảo ngược có thể giúp phát hiện một số lỗi dữ liệu.

Đảo ngược ký tự so với đảo ngược từ

Hai phép xử lý này thường bị nhầm lẫn.

  • Đảo ngược ký tự (điều công cụ này thực hiện): mọi ký tự đều bị đảo ngược. "Hello World" trở thành "dlroW olleH".
  • Đảo ngược từ: mỗi từ vẫn giữ nguyên, nhưng thứ tự các từ thay đổi. "Hello World" trở thành "World Hello".

Lược sử

Chữ viết đảo ngược và chữ viết soi gương xuất hiện từ hàng nghìn năm trước khi máy tính ra đời. Một số văn bia Hy Lạp cổ đại sử dụng kiểu viết gọi là boustrophedon, trong đó các dòng xen kẽ hướng viết, từ trái sang phải rồi từ phải sang trái, tương tự cách một con bò cày ruộng. Leonardo da Vinci viết phần lớn sổ tay của mình bằng chữ soi gương, chỉ có thể đọc được khi đưa lên trước gương; các sử gia vẫn tranh luận liệu ông làm vậy để giữ bí mật, vì thuận tiện cho người thuận tay trái, hay để tránh làm nhòe mực.

Trong ngành máy tính, đảo ngược một chuỗi đã là bài tập lập trình tiêu chuẩn từ những ngày đầu của khoa học máy tính. Bài tập này thường được dùng để dạy cách hoạt động của ngăn xếp và mảng, vì việc đẩy các ký tự vào ngăn xếp rồi lấy chúng ra sẽ tự động đảo ngược thứ tự.

Cách đảo ngược văn bản trong mã

Hầu hết các ngôn ngữ lập trình đều có cách tích hợp sẵn hoặc cách đơn giản để đảo ngược một chuỗi:

1text = "Hello, World!"
2print(text[::-1])  # !dlroW ,olleH
3

Cả hai ví dụ đều đảo ngược chính xác văn bản gồm các chữ cái và chữ số thông thường, cũng như emoji chỉ gồm một đơn vị như 🌍. Tuy nhiên, chúng vẫn có thể tách rời một ký tự được tạo thành từ nhiều đơn vị ẩn, chẳng hạn như một số emoji cờ, chữ cái có dấu được gõ bằng dấu tách riêng, hoặc emoji gia đình được ghép bằng các ký tự nối đặc biệt. Phép đảo ngược bảo toàn cụm grapheme đầy đủ, là phương pháp công cụ này sử dụng, cần một hàm chuyên dụng như Intl.Segmenter của JavaScript.

Hiệu năng

Đảo ngược văn bản cần thời gian tuyến tính: thuật toán xem xét mỗi ký tự đúng một lần, vì vậy khi tăng gấp đôi đầu vào, khối lượng xử lý cũng tăng gần gấp đôi. Với văn bản thông thường, từ một từ đơn lẻ đến vài trang, kết quả xuất hiện gần như tức thì. Các tệp rất lớn, có kích thước từ hàng megabyte trở lên, nên được xử lý bằng các chương trình chuyên dụng, đọc luồng dữ liệu thay vì tải toàn bộ vào bộ nhớ cùng lúc.

Các câu hỏi thường gặp

Làm thế nào để đảo ngược văn bản trực tuyến?

Dán hoặc gõ văn bản vào ô ở phía trên. Văn bản đảo ngược sẽ tự động xuất hiện ngay khi ngừng gõ. Sử dụng nút sao chép để sao chép kết quả.

Có giới hạn độ dài văn bản không?

Có. Công cụ chấp nhận tối đa 10.000 ký tự. Phần nhập dài hơn sẽ tạo ra thông báo lỗi thay vì kết quả. Ký tự được đếm theo cách chúng hiển thị trên màn hình, vì vậy một emoji hoặc chữ cái có dấu được tính là một ký tự, không phải hai.

Công cụ này đảo ngược từ hay chỉ đảo ngược ký tự?

Công cụ đảo ngược từng ký tự riêng lẻ, không đảo thứ tự các từ. "Hello World" trở thành "dlroW olleH", không phải "World Hello".

Công cụ có xử lý được emoji và văn bản không phải tiếng Anh không?

Có. Công cụ xem emoji, cờ và chữ cái có dấu là các đơn vị riêng lẻ để chúng vẫn nguyên vẹn sau khi đảo ngược. Công cụ cũng hoạt động với mọi hệ chữ viết, bao gồm văn bản tiếng Trung, tiếng Ả Rập và chữ Kirin.

Nếu đảo ngược văn bản hai lần, tôi có nhận lại văn bản ban đầu không?

Có. Đảo ngược một chuỗi đã đảo ngược sẽ khôi phục văn bản ban đầu. Tính chất này gọi là phép đối hợp.

Văn bản đảo ngược có hữu ích cho việc mã hóa không?

Không. Đảo ngược ký tự không an toàn. Cách này chỉ che giấu văn bản về mặt trực quan, và bất kỳ ai đảo ngược lại cũng có thể đọc được.

Tài liệu tham khảo

  1. The Unicode Consortium. Unicode Standard Annex #29: Phân đoạn văn bản Unicode.
  2. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Nhập môn thuật toán (lần xuất bản thứ 3). MIT Press.
  3. MDN Web Docs. Intl.Segmenter. Mozilla Developer Network.