Trang chủ Lập trình Javascript - HTML Bài toán tìm số cô đơn trong mảng

Bài toán tìm số cô đơn trong mảng

Trên trang Code Fights (tôi đã giới thiệu về trang web này ở bài viết: Thử tài tìm lỗi của mã lập trình với Code Fights) có mục Challenge (tạm dịch là Thách thức). Ở đây người ta sẽ đưa ra một bài toán yêu cầu người tham gia giải quyết và bài giải tối ưu là bài giải có lời giải… ngắn nhất.

Hôm rồi có yêu cầu như thế này.

Bài toán tìm số cô đơn

Tạm dịch là: Cho một mảng các số chứa một số không được lặp và nhiệm vụ người tham gia là viết mã để tìm ra số đó.

Tôi bắt đầu hiểu là có thể chuỗi chứa nhiều giá trị không lặp nên code xuất ra mảng chứa các phần tử đó. Máy không chịu vậy là hiểu nó chỉ lấy một giá trị và tôi viết đoạn mã này và vượt qua được tất cả các bộ test.

Thật ra lúc đầu tôi không để ý lắm đến tiêu chí đánh giá (lời giải càng ngắn càng tốt) nên viết cố gắng càng tường minh càng tốt nhưng sau này mới nhận ra tiêu chí nên bắt đầu sửa. Một số mẹo vặt để tối ưu lời giải cho bài toán này:

  • Người ra đề chỉ yêu cầu mảng chứ 1 số thỏa điều kiện đó nên gặp là trả về luôn khỏi kiểm tra tiếp.
  • Thay vì đặt biến tên dài lằng ngoằng để tường minh thì có thể đặc là: a, b, c… cho ngắn.
  • Giá trị nào lặp nhiều lần mà số ký tự dài thì nên gán là: a, b, c… cho rút ngắn ký tự khi gọi lại.
  • Loại bỏ hết các dấu mở ngoặc nhọn, đóng ngoặc nhọn ({}), chấm phảy (;) nếu có thể.

Ấy vậy mà vẫn không rút ngắn được bao nhiêu và đây là bài giải của người mà mình phải gọi là thánh. Một dòng duy nhất. Quá kinh!

Chia sẻ với các bạn cho vui. Các bạn học CNTT mới nhập môn lập trình thì có thể tham khảo thuật toán.

Thật ra khi kết thúc cuộc thi với bài toán này mình xem ra thì thấy có nhiều đoạn mã viết rất hay nếu xét về độ tối ưu thì mình thấy OK nhưng ngặt nổi ở đây tối ưu là lời giải ngắn nên đành chịu thôi ^^!

PS: Ở đây mình viết bằng Javascript.

Huỳnh Mai Anh Kiệt

0 BÌNH LUẬN

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây