Danh sách

Tạo URL Slug tiếng Việt chuẩn SEO (Vietnamese Slug Generator)

Dễ
Thuật Toán Web Thực Chiến (Practical Web Algorithms) 600ms 64MB

Trong các ứng dụng Web (đặc biệt là các framework như Laravel, NestJS hay Express), việc chuyển đổi tiêu đề bài viết tiếng Việt thành đường dẫn tĩnh (URL Slug) thân thiện với công cụ tìm kiếm là yêu cầu thường gặp.

Cho một chuỗi tiêu đề tiếng Việt title. Hãy tạo ra URL slug chuẩn SEO theo các nguyên tắc:

  1. Khử dấu toàn bộ các nguyên âm tiếng Việt (à, á, ả, ã, ạ, ă, ắ, ằ, ẳ, ẵ, ặ, â, ấ, ầ, ẩ, ẫ, ậ -> a; đ -> d; ...).
  2. Chuyển toàn bộ các chữ cái thành chữ thường (lowercase).
  3. Thay thế khoảng trắng và tất cả các ký tự đặc biệt (dấu câu, ký hiệu) bằng dấu gạch ngang -.
  4. Các dấu gạch ngang liên tiếp phải được gộp lại thành đúng một dấu gạch ngang duy nhất (ví dụ: --- thành -).
  5. Cắt bỏ dấu gạch ngang ở đầu và ở cuối chuỗi nếu có.

Ví dụ 1:

Input: "Khóa học Lập trình Laravel 7 & Vue.js!"
Output: "khoa-hoc-lap-trinh-laravel-7-vuejs"

Ví dụ 2:

Input: "  Học Lập Trình Web Tại Unicode  "
Output: "hoc-lap-trinh-web-tai-unicode"
Định Dạng Đầu Vào (Input)
Một dòng duy nhất chứa chuỗi tiêu đề title
Định Dạng Đầu Ra (Output)
Chuỗi URL slug chuẩn SEO
Ràng Buộc (Constraints)
  • 1 <= title.length <= 1000
  • Chuỗi có thể chứa chữ tiếng Việt có dấu, chữ cái tiếng Anh, chữ số và ký tự đặc biệt.
Ví Dụ Kiểm Thử Mẫu
Ví dụ 1:
Input:
"Khóa học Lập trình Laravel 7 & Vue.js!"
Output:
"khoa-hoc-lap-trinh-laravel-7-vuejs"
Giải thích: Khử dấu và ký tự đặc biệt
Ví dụ 2:
Input:
"  Học Lập Trình Web Tại Unicode  "
Output:
"hoc-lap-trinh-web-tai-unicode"
Giải thích: Cắt gọt khoảng trắng thừa
Gợi ý được sắp xếp theo cấp độ tiến dần. Hãy mở từng gợi ý khi bạn thực sự cần thêm định hướng.

Kỹ thuật Bảng Ánh Xạ Ký Tự Tiếng Việt & Regex

1. Ánh xạ các nhóm ký tự tiếng Việt sang ký tự không dấu (a, e, i, o, u, y, d).
2. Dùng biểu thức chính quy [^a-z0-9]+ thay thế mọi ký tự không phải chữ số bằng dấu -.
3. Dùng trim('-') cắt gọt dấu gạch ngang ở 2 đầu.

Vui lòng đăng nhập

Đăng nhập tài khoản học viên để xem lịch sử nộp bài của bạn.

Đăng nhập
Ctrl + Enter: Chạy thử
Dữ liệu đầu vào (Input):
"Khóa học Lập trình Laravel 7 & Vue.js!"
Kết quả kỳ vọng (Expected Output):
"khoa-hoc-lap-trinh-laravel-7-vuejs"
Dữ liệu đầu vào (Input):
" Học Lập Trình Web Tại Unicode "
Kết quả kỳ vọng (Expected Output):
"hoc-lap-trinh-web-tai-unicode"
Nhập STDIN của bạn (Mỗi dòng một tham số):

Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.

Đang gửi mã và thực thi trên Sandbox Engine...
Nhấn Ctrl+Enter để chạy

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học