Giới thiệu:
Tôi thu thập các câu đố xoắn. Hầu hết các câu đố xoắn được sản xuất và bán bởi các công ty Trung Quốc. Hầu hết các công ty nổi tiếng đều xin phép các nhà thiết kế câu đố để sản xuất các thiết kế của họ và cùng nhau hướng tới một sản phẩm trên thị trường. Trong trường hợp này, các nhà thiết kế câu đố tất nhiên rất vui mừng và tự hào rằng một trong những câu đố của họ được tung ra thị trường.
Tuy nhiên, cũng có những công ty Trung Quốc thực hiện các câu đố loại trực tiếp. Những tiếng gõ cửa này là những thiết kế được sử dụng mà không có sự cho phép của người tạo ban đầu, hoặc là những bản sao chất lượng thấp hơn rẻ hơn của các câu đố đã tồn tại.
Thử thách:
Chúng ta sẽ xác định tính độc đáo của con số mà được 'thả' theo một thứ tự cụ thể (từ trái sang phải † ).
Đưa ra một danh sách các số nguyên, nhóm và xuất chúng theo tính nguyên bản của chúng.
Làm thế nào là độc đáo của các số được xác định?
- Là một số trùng lặp chính xác của một số trước đó? Nhóm (ít nhất là bản gốc), trong đó nhóm đang theo sau, sau tất cả các nhóm khác.
- Là một số trùng lặp với một số trước đó, nhưng thay vào đó là số âm (tức là số ban đầu là , nhưng bây giờ ; hoặc ngược lại)? Nhóm .
- Giá trị tuyệt đối của số có thể được hình thành bằng cách ghép một hoặc nhiều số tuyệt đối sớm hơn và nó không phải là một phần của các nhóm được đề cập trước đó hoặc ? Nhóm , trong đó là số lượng các số riêng biệt được sử dụng trong phép nối (và ).
- Con số không phù hợp với bất kỳ nhóm nào ở trên, vì vậy là hoàn toàn duy nhất cho đến nay? Nhóm (hầu hết nguyên bản), đang dẫn đầu trước tất cả các nhóm khác.
Điều này nghe có vẻ khá mơ hồ, vì vậy đây là một ví dụ từng bước :
Danh sách đầu vào: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]
34
là số đầu tiên, luôn luôn là bản gốc và trong nhóm . Đầu ra cho đến nay:[[34]]
9
cũng là bản gốc:[[34,9]]
4
cũng là bản gốc:[[34,9,4]]
-34
là số âm của số trước đó34
, vì vậy nó thuộc nhóm :[[34,9,4],[-34]]
19
là bản gốc:[[34,9,4,19],[-34]]
-199
có thể được hình thành bởi hai số trước đó19
và9
do đó, nó thuộc nhóm :[[34,9,4,19],[-199],[-34]]
34
là bản sao chính xác của một số trước đó, vì vậy nó thuộc nhóm :[[34,9,4,19],[-199],[-34],[34]]
-213
là bản gốc:[[34,9,4,19,-213],[-199],[-34],[34]]
94
có thể được hình thành bởi hai số trước đó9
và4
do đó, nó thuộc nhóm :[[34,9,4,19,-213],[-199,94],[-34],[34]]
1934499
có thể được hình thành bởi bốn con số trước đó19
,34
,4
, và hai lần9
, vì vậy trong nhóm :[[34,9,4,19,-213],[19499],[-199,94],[-34],[34]]
213
là số âm của số trước đó-213
, vì vậy nó thuộc nhóm :[[34,9,4,19,-213],[1934499],[-199,94],[-34,213],[34]]
3
là bản gốc:[[34,9,4,19,-213,3],[1934499],[-199,94],[-34,213],[34]]
21
là bản gốc:[[34,9,4,19,-213,3,21],[1934499],[-199,94],[-34,213],[34]]
-2134
có thể được hình thành bởi hai số trước đó213
và4
(hoặc ba con số trước đó21
,3
và4
, nhưng chúng tôi luôn luôn sử dụng số tiền ít nhất của concatenating số để xác định sự độc đáo), vì vậy nó là trong nhóm :[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134],[-34,213],[34]]
44449
có thể được hình thành bởi hai số trước đó bốn lần4
và9
vì vậy nó thuộc nhóm :[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[-34,213],[34]]
44
có thể được hình thành bởi một số trước đó4
, lặp lại hai lần, vì vậy nó thuộc nhóm :[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]
Vì vậy, cho đầu vào [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]
là đầu ra [[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]
.
Quy tắc thử thách:
- I / O là linh hoạt. Bạn có thể nhập dưới dạng danh sách / mảng / luồng số nguyên hoặc chuỗi, nhập từng cái một qua STDIN, v.v. Đầu ra có thể là bản đồ với các nhóm làm khóa, danh sách lồng nhau làm ví dụ và trường hợp kiểm tra trong thử thách này, được in dòng mới tách, vv
- Bạn được phép lấy danh sách đầu vào theo thứ tự đảo ngược (có lẽ hữu ích cho các ngôn ngữ dựa trên ngăn xếp). † Trong trường hợp này, ngay từ trái sang nói là tất nhiên phải sang trái.
- Như bạn có thể nhìn thấy ở ví dụ cho số nguyên
-2134
, chúng tôi luôn nhóm một con số đó là một nối các con số khác với càng ít càng tốt (được thành lập bởi213
và4
- hai con số; và không bằng21
,3
và4
- ba số). - Như bạn có thể thấy trong ví dụ về số nguyên
1934499
, bạn có thể sử dụng một số trước đó (9
trong trường hợp này) nhiều lần (tương tự với44449
việc sử dụng bốn4
s và a9
trong ví dụ). Họ chỉ được tính một lần để xác định nhóm tuy nhiên. - Bạn không được phép có các danh sách bên trong trống trong đầu ra cho các nhóm trống. Vì vậy, trường hợp thử nghiệm
[1,58,85,-8,5,8585,5885,518]
có thể không dẫn đến[[1,58,85,8,5],[518],[5885],[8585],[],[]]
thay vào đó, trong đó các nhóm trống là và , và ví dụ trên có thể không dẫn đến thay vào đó, trong đó nhóm trống là .X - 3[[34,9,4,19,-213,3,21],[1934499],[],[-199,94,-2134,44449],[44],[-34,213],[34]]
- Thứ tự của các nhóm rất nghiêm ngặt (trừ khi bạn sử dụng bản đồ, vì các nhóm sau đó có thể được khấu trừ khỏi các khóa), nhưng thứ tự của các số trong một nhóm có thể theo bất kỳ thứ tự nào. Vì vậy,
[34,9,4,19,-213,3,21]
cho nhóm trong ví dụ trên cũng có thể hoặc .[21,3,-213,19,4,9,34]
[-213,4,34,19,9,21,3]
- Bạn được đảm bảo rằng sẽ không bao giờ có bất kỳ số nào có thể được hình thành bởi hơn chín số trước đó. Vì vậy, bạn sẽ không bao giờ có bất kỳ nhóm và số lượng nhóm lớn nhất có thể là 12:
- Bạn có thể giả sử các số nguyên sẽ có tối đa 32 bit, do đó trong phạm vi
[−2147483648,2147483647]
.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Quy tắc chuẩn áp dụng cho câu trả lời của bạn với quy tắc I / O mặc định , vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn (ví dụ TIO ).
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm:
Input: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44]
Output: [[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134,44449],[44],[-34,213],[34]]
Input: [17,21,3,-317,317,2,3,117,14,-4,-232,-43,317]
Output: [[17,21,3,2,117,14,-4],[-317,-232,-43],[317],[3,317]]
Input: [2,4,8,10,12,-12,-102,488,10824]
Output: [[2,4,8,10,12],[10824],[-102,488],[-12]]
Input: [0,100,-100,10000,-100,1001000]
Output: [[0,100],[10000,1001000],[-100],[-100]]
Input: [1,58,85,-8,5,8585,5885,518]
Output: [[1,58,85,-8,5],[518],[5885],[8585]]
Input: [4,-4,44,5,54]
Output: [[4,5],[54],[44],[-4]]
[1, 1111111111]
X + 1
một nhóm đặc biệt cho các bản sao chính xác vàX
là một nhóm cho các số khác có thể được hình thành từ các bản sao của một số duy nhất, chẳng hạn như phủ định của nó?