tôi đang cố gắng để có một chuỗi, giữa chiều dài 1 đến 10, và đầu ra tất cả các cách có thể phá vỡ chuỗi thành chuỗi con liên tiếp có kích thước 1, 2, hoặc 3. Ví dụ:Làm thế nào để tách một chuỗi thành các chuỗi liên tiếp có chiều dài tối đa là 3 trong tất cả các cách có thể?
Input: 123456
Cắt số nguyên thành các ký tự riêng lẻ, sau đó tiến hành để tìm các kết hợp. Mã sẽ trả về tất cả các mảng sau.
[1, 2, 3, 4, 5, 6]
[12, 3, 4, 5, 6]
[1, 23, 4, 5, 6]
[1, 2, 34, 5, 6]
[1, 2, 3, 45, 6]
[1, 2, 3, 4, 56]
[12, 34, 5, 6]
[12, 3, 45, 6]
[12, 3, 4, 56]
[1, 23, 45, 6]
[1, 2, 34, 56]
[1, 23, 4, 56]
[12, 34, 56]
[123, 4, 5, 6]
[1, 234, 5, 6]
[1, 2, 345, 6]
[1, 2, 3, 456]
[123, 456]
[1, 23, 456]
[1, 234, 56]
[12, 345, 6]
[12, 3, 456]
[123, 4, 56]
[123, 45, 6]
Tôi đang cố gắng thực hiện điều này bằng ruby. Cảm ơn!
Và những gì bạn đã cố gắng cho đến nay? –
Đầu vào cần được chia thành các khối có kích thước tối đa 3. Ví dụ [1234,5,6] sẽ không hoạt động vì mục đầu tiên quá lớn. Tôi đã làm việc trên hoán vị và kết hợp, nhưng không thể tìm ra cách để có được hoán vị chứa các khối có kích thước khác nhau (một số có 1 ký tự, một số có 2 và một số có 3). Tôi cũng đã bắt đầu làm việc trên một cây quyết định, nhưng không nhận được rất xa. – Drizzit12
@Richard: Điều này không liên quan gì đến hoán vị. Một hoán vị là một sắp đặt lại. Bạn đang giữ các con số theo cùng thứ tự. – PengOne