Giới thiệu
Máy tính của tôi đang cư xử kỳ lạ. Đôi khi khi tôi gõ vào 8
nó sẽ hiển thị a 2
. Và đôi khi khi tôi gõ vào 6
nó sẽ hiển thị a +
. Một số nút được trộn lẫn!
Bất cứ ai có thể giúp tôi xác định đó?
Thử thách:
Đầu vào: Danh sách các phương trình không chính xác , với kết quả chính xác .
Đầu ra: Hai nút được hoán đổi.
Ví dụ:
Một đầu vào có thể là:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Mà đầu ra dự kiến là: 2
và *
.
Tại sao? Bởi vì TẤT CẢ các phương trình sẽ đúng nếu chúng ta trao đổi 2 và *:
1*3 = 3
84*3 = 252
4+4 = 8
427-10 = 417
9/3 = 3
4*-9 = -36
Quy tắc thử thách:
- Đầu vào có thể ở bất kỳ định dạng hợp lý. Có thể là một chuỗi đơn với giới hạn không gian; một danh sách chuỗi hoặc -array; một danh sách với các phương trình và một danh sách khác với kết quả chính xác. Cuộc gọi của bạn. Vui lòng cho biết định dạng đầu vào bạn đã sử dụng!
LƯU Ý: Điều này cũng có nghĩa là bạn được phép nhập trường hợp kiểm tra-5--15
là-5- -15
hoặc-5 - -15
. Tuy nhiên, một số dẫn đến--
phải được nhập vào mà không có khoảng trắng hoặc có khoảng trắng giữa mỗi chữ số. Vì vậy, trường hợp thử nghiệm9119
có thể được nhập vào như9119
hoặc9 1 1 9
(lý do91 19
không được phép là vì sau đó bạn có thể được hướng dẫn bởi không gian để tìm- -
). Vì vậy, không gian là (phần nào) tùy chọn và được phép. - Định dạng đầu ra có thể ở bất kỳ định dạng hợp lý là tốt. Có thể là hai nhân vật; một chuỗi hai ký tự; một danh sách chuỗi chứa hai ký tự. Cuộc gọi của bạn. Một lần nữa, vui lòng cho biết định dạng đầu ra bạn đã sử dụng!
- Bạn được phép sử dụng bất kỳ 14 đầu ra riêng biệt nào ánh xạ tới
0123456789+-*/
. Vì vậy, bạn thậm chí được phép xuất hai số nguyên riêng biệt nếu bạn muốn (một lần nữa, vui lòng chỉ định ánh xạ bạn đã sử dụng, nếu có). - Bạn chỉ phải hỗ trợ số nguyên. Vì vậy, sẽ không có bất kỳ trường hợp thử nghiệm như
1/8=0.125
hoặc1/8=0
. - Các toán hạng số học bạn sẽ phải hỗ trợ: thêm (
+
); phép trừ (-
); phép nhân (*
hoặc×
hoặc·
); phân chia (/
hoặc÷
). (LƯU Ý: Các ký tự giữa dấu ngoặc đơn chỉ được thêm vào để làm rõ.) - Bạn sẽ phải hỗ trợ số âm. Điều này có nghĩa
-
được hiểu trong phương trình là cả toán hạng toán học hoặc chỉ báo âm. - Bạn có thể giả sử các phương trình không chính xác đã cho và các phương trình đúng được cho là luôn hợp lệ (vì vậy sẽ không có những thứ như
4-/2
hoặc9+-+8
ví dụ). - Các phương trình đầu vào không chính xác có thể chứa một phép chia bằng 0, nhưng các phương trình được sửa và dự kiến sẽ không bao giờ chứa phép chia cho 0.
- Các phương trình đầu vào không chính xác có thể đã chính xác ngay cả khi bạn trao đổi các nút dự định trở lại.
- Một phương trình đầu vào nhất định có thể không liên quan để các nút hoán đổi (như phương trình
4+4=8
và9/3=3
phương trình, với các nút được hoán đổi2
và*
). - Bạn có thể cho rằng sẽ luôn chỉ có một trao đổi có thể được thực hiện với các trường hợp thử nghiệm đã cho.
- Cả hai nút để hoán đổi sẽ luôn có mặt trong ít nhất một trong các phương trình không chính xác.
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ỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, 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ề, các 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.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
Các trường hợp thử nghiệm:
Input:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Output: 2 *
Input:
4/2 = 6
3/0 = 3
0/8+2 = 4
95-5 = 90
4+2 = 2
Output: + /
Input:
7+4 = 11
5-15 = 46
212-23 = -2121
Output: 1 -
Input:
4+8/2-9*1 = -5
99/3-13 = 20
1+2+3+4 = 10
4-3-2-1 = -6
Output: 2 4
Input:
18/18 = 1
98-8 = 90
55*88 = 4840
-5--15 = 10
Ouput: 5 8
Input:
9119 = 18
5-3 = 513
8*-9 = 152
13116/3 = -1
Output: 1 -
--
. Ví dụ 1991 = 2, -/3 = 3
. (Nhiều ngôn ngữ nhầm lẫn điều này với toán tử giảm dần.)
91 19
nếu giải pháp là 9--9
và không có không gian trong 9119
nếu giải pháp đó 9229
đòi hỏi kiến thức về giải pháp khi tạo các trường hợp thử nghiệm. Nếu điều này được cho phép, tôi chỉ có thể thêm một khoảng trắng trước khi các ký tự được hoán đổi và giải pháp có thể được lấy ngay từ trường hợp thử nghiệm.
*
và /
trước +
và nhị phân -
?