Giới thiệu Kata
Bài Kata này được lấy từ blog của Robert Martin cùng với một lời giải viết bằng Java.
Mô tả bài toán
Bạn hãy viết một lớp có tên là Wrapper, lớp này có phương thức wrap nhận vào 2 đối số: một chuỗi (string) và một số nguyên. Phương thức này trả về chuỗi được với những ký tự xuống dòng chèn được chèn đúng chỗ để đảm bảo không dòng nào dài hơn số cột được chỉ định bởi tham số thứ hai truyền vào phương thức. Bạn cần đảm bảo việc ngắt dòng hợp lý sao cho các từ không bị bẻ giữ chừng.
Phương thức này giống như một bộ xử lý văn bản, bẻ dòng bằng cách thay thế khoảng trắng cuối cùng với kí tự xuống dòng.
Các lời giải trên những ngôn ngữ khác nhau:
- Giải pháp của Robert Martin trên Java.
- Giải pháp Đệ quy với Python.
- Giải pháp Regular Expression trên Ruby.
- Giải pháp của Forth, và phản hồi trong nhóm.
- Các giải pháp khác với Java.
Các giải thuật khác nhau
PeterKofler đã làm bài Kata này vài lần bằng Java với những cách làm khác nhau. Các giải thuật làm tăng độ phức tạp của code nhưng giảm số lần thay thế. Có thể xem chi tiết các giải thuật này tại đây.
Nguồn Kata: http://codingdojo.org/kata/WordWrap/
0 Lời bình