Chúng tôi xác định khoảng trắng là một trong ba ký tự, tab (0x09), dòng mới (0x0A) hoặc dấu cách (0x20).
Đối với thử thách này, bạn phải viết hai chương trình hoặc chức năng trong cùng một ngôn ngữ lập trình, thực hiện các tác vụ sau:
Đếm các ký tự khoảng trắng trong một chuỗi đã cho. Ví dụ, đầu vào
123 -_- abc def
sẽ trả về 7 (miễn là không có dòng mới).
Tách một chuỗi nhất định tại các khoảng trắng liên tiếp. Nếu chuỗi bắt đầu hoặc kết thúc bằng khoảng trắng, không có chuỗi trống nào được trả về ở cuối. Chẳng hạn, cùng một đầu vào
123 -_- abc def
sẽ quay trở lại
["123", "-_-", "abc", "def"]
.
Trong cả hai trường hợp, bạn có thể nhận đầu vào qua STDIN, đối số dòng lệnh hoặc đối số hàm trả về kết quả hoặc in nó STDOUT. Đối với chương trình thứ hai, nếu bạn chọn in sang STDOUT, vui lòng in từng chuỗi trên dòng riêng của nó, không có dấu ngoặc kép xung quanh.
Đối với cả hai chương trình, bạn có thể giả sử rằng đầu vào chỉ chứa ASCII có thể in (0x20 đến 0x7E) và khoảng trắng.
Bây giờ đây là bắt:
- Nếu tất cả các khoảng trắng được loại bỏ khỏi cả hai chương trình / hàm, các chuỗi kết quả phải giống hệt nhau. Đó là, hai bài nộp của bạn chỉ có thể khác nhau về số lượng và vị trí của các ký tự khoảng trắng.
- Cả chương trình / chức năng đều không thể chứa bất kỳ chuỗi ký tự hoặc biểu thức chính quy nào (nghĩa đen của ký tự là tốt, miễn là ngôn ngữ của bạn có loại ký tự được chỉ định).
- Không chương trình / chức năng có thể chứa bất kỳ ý kiến.
- Bạn không được đọc mã nguồn của chương trình, trực tiếp hoặc gián tiếp.
Đây là mã golf. Điểm của bạn là tổng kích thước của cả hai giải pháp (tính bằng byte). Điểm số thấp nhất chiến thắng.
Bảng xếp hạng
Đoạn trích sau đây tạo ra cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ. Vì vậy, ngay cả khi ngôn ngữ bạn chọn không cho phép bạn chiến thắng toàn bộ thử thách, tại sao bạn không thử giành một vị trí trong danh sách thứ hai? Tôi rất muốn xem mọi người giải quyết thách thức này bằng nhiều ngôn ngữ như thế nào!
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
# Language Name, N bytes
nơi N
là tổng kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Bạn cũng có thể bao gồm số lượng cá nhân trước khi tổng số, ví dụ:
# Python 2, 35 + 41 = 76 bytes
Số cuối cùng không bị đánh xuyên qua sẽ được đoạn trích sử dụng.
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 42253;jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)<\\/code><\/pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>