Một chiếc túi , còn được gọi là multiset, là một bộ sưu tập không có thứ tự. Bạn có thể gọi nó là một tập hợp cho phép trùng lặp hoặc một danh sách (hoặc một mảng) không được sắp xếp / lập chỉ mục. Trong thử thách này, bạn được yêu cầu thực hiện các thao tác túi: cộng, chênh lệch, nhân, chia, đếm và kiểm tra đẳng thức.
Hoạt động
Các hoạt động được chỉ định có thể không được thông thường.
- Ngoài ra, kết hợp hai túi thành một, bảo toàn tổng số của mỗi giá trị
[1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4]
- sự khác biệt loại bỏ khỏi túi mỗi yếu tố của túi khác hoặc không làm gì nếu không có yếu tố đó
[1,2,2,4] - [1,2] = [2,4]
[1,2,3] - [2,4] = [1,3]
- phép nhân nhân từng phần tử trong túi.
[1,2,3,3,4] * 3 = [1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]
2 * [1,3] = [1,1,3,3]
- phép chia là một trường hợp không phổ biến: mỗi n phần tử bằng nhau được đặt trong n túi mới bằng nhau, các phần tử không thể tạo thành nhóm n vẫn còn trong túi. Trả lại bất kỳ một trong n túi mới.
[1,1,2,2,2] / 2 = [1,2]
[1,2,2,3,3,3] / 3 = [3]
- đếm đếm có bao nhiêu túi chia có thể được sản xuất từ túi cổ tức
[1,1,2,2,2,2,3,3,3] c [1,2,3] = 2
- kiểm tra sự bằng nhau kiểm tra nếu hai túi có cùng số của mỗi phần tử
[1,2,2,3] == [3,2,1,2] = truthy
[1,2,3] == [1,2,2,3] = falsy
(cũng có thể sử dụng=
cho điều này)
Nếu bạn đang sử dụng các ký hiệu của riêng mình cho các toán tử, vui lòng chỉ định.
Các định dạng
Túi sẽ được hiển thị dưới dạng danh sách của mẫu [1,1,2,3,4]
. Bạn có thể sử dụng bất kỳ dấu ngoặc nào khác ngoài dấu vuông hoặc thậm chí sử dụng dấu ngoặc kép hoặc không có gì cả. Các yếu tố sẽ là số nguyên (về mặt toán học, không nhất thiết int
) cho mục đích của câu hỏi này. Túi không phải được sắp xếp.
Các định dạng đầu vào sẽ có hai túi hoặc một chiếc túi và một số nguyên, với một nhà điều hành. Bạn có thể chỉ định định dạng của riêng mình miễn là nó chứa ba định dạng này.
Các định dạng đầu ra phải là một túi duy nhất của định dạng tương tự.
Quy tắc
- bạn không được sử dụng các hàm, thao tác hoặc thư viện tích hợp (bao gồm cả thư viện chuẩn) đã triển khai các hàm này; Mặc dù sử dụng phép nối và nhân danh sách cũng không sao vì chúng là do hoạt động của danh sách định nghĩa, không phải là hoạt động túi (điều này về cơ bản làm điều tương tự)
- sơ hở tiêu chuẩn áp dụng
- câu trả lời ngắn nhất sẽ thắng
Các trường hợp thử nghiệm
[1,2,2,3] + [1,2,4]
[1,1,2,2,2,3,4]
[1,2,2,4] - [1,2]
[2,4]
[1,2,3] - [2,4]
[1,3]
[1,2,3,3,4] * 3
[1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]
2 * [1,3]
[1,1,3,3]
[1,1,2,2,2] / 2
[1,2]
[1,2,2,3,3,3] / 3
[3]
[1,1,2,2,2,2,3,3,3] c [1,2,3]
2
[3,2,1,2] == [1,2,2,3]
truthy
[1,2,3] == [1,2,2,3]
falsy