Các thách thức
Bạn đã cho:
- một danh sách không trống, chưa sắp xếp h của các số nguyên dương (haystack)
- một số nguyên dương n (kim)
Nhiệm vụ của bạn là trả về danh sách tất cả các phép nối thập phân duy nhất của hoán vị của h có biểu diễn nhị phân chứa biểu diễn nhị phân của n .
Ví dụ
h = [1, 2, 3]
n = 65Chỉ có một cách ghép phù hợp, do đó, đầu ra dự kiến là
[321]
.h = [1, 2, 3]
n = 7Lần này, có ba cách ghép có chứa mẫu nhị phân 111 . Sản lượng dự kiến là
[123, 231, 312]
.h = [12, 3]
n = 7Chỉ có hai hoán vị có sẵn và cả hai đều phù hợp. Sản lượng dự kiến là
[123, 312]
.h = [1, 2, 2]
n = 15Phép nối phù hợp duy nhất là 122 ( 1111010 ở dạng nhị phân, chứa 1111 ), do đó, đầu ra dự kiến là
[122]
. Lưu ý rằng hai hoán vị thực sự dẫn đến 122 nhưng bạn không được phép xuất[122, 122]
.
Làm rõ và quy tắc
- Bạn có thể lấy kim làm số nguyên (
65
), chuỗi đại diện cho giá trị thập phân ("65"
) hoặc chuỗi đại diện cho giá trị nhị phân ("1000001"
). - Bạn có thể lấy haystack làm mảng / đối tượng / bộ số nguyên (
[11,12,13]
), mảng / đối tượng / bộ chuỗi gốc biểu thị các giá trị thập phân (["11","12","13"]
) hoặc một chuỗi các giá trị thập phân ("11 12 13"
hoặc"11,12,13"
) được phân tách . Bạn cũng có thể chọn một biến thể bằng cách sử dụng các mảng chữ số (như[[1,1],[1,2],[1,3]]
). - Đầu ra phải tuân theo một trong các định dạng được mô tả ở trên cho haystack, nhưng không nhất thiết phải giống nhau.
- Bạn không được phép xử lý các đống cỏ khô có độ nối thập phân cao nhất lớn hơn số nguyên không dấu có thể biểu thị cao nhất trong ngôn ngữ của bạn.
- Ngoài ra, về mặt lý thuyết, mã của bạn sẽ hỗ trợ bất kỳ đầu vào nào - giả sử nó được cung cấp đủ thời gian và bộ nhớ.
- Đây là
SPARTA!code-golf , vì vậy câu trả lời ngắn nhất trong byte thắng!
Các trường hợp thử nghiệm
Haystack | Needle | Output
---------------------+----------+-----------------------------------
[ 1, 2, 3 ] | 65 | [ 321 ]
[ 1, 2, 3 ] | 7 | [ 123, 231, 312 ]
[ 12, 3 ] | 7 | [ 123, 312 ]
[ 1, 2, 2 ] | 15 | [ 122 ]
[ 1, 2 ] | 7 | []
[ 12, 34, 56 ] | 21 | [ 125634, 341256, 345612, 563412 ]
[ 1, 2, 3, 4, 5 ] | 511 | [ 53241 ]
[ 1, 3, 5, 7, 9 ] | 593 | [ 37519, 51793, 75913, 75931 ]
[ 11, 12, 13, 14 ] | 12141311 | [ 12141311 ]
[ 1, 2, 1, 2, 1, 2 ] | 1015 | [ 221112 ]
["12","3"]
và ["1","23"]
là hai đống cỏ khô riêng biệt.
set([(1, 2, 2)])
. Nó có hợp lệ hay tôi nên thoát khỏiset
?