Từ câu đố lập trình đến Code Golf


74

Nhiệm vụ của bạn là viết một chương trình xuất ra chuỗi chính xácProgramming Puzzles (theo dõi dòng mới tùy chọn), nhưng khi tất cả các khoảng trắng, tab và dòng mới được loại bỏ, nó sẽ xuất ra Code Golf(theo dõi dòng mới tùy chọn.)

Số byte của bạn là số đếm của chương trình đầu tiên, vẫn còn khoảng trống.

Ghi chú

  • Các không gian trong Code Golf Programming Puzzles sẽ được loại bỏ như là một phần của việc loại bỏ, do đó hãy lên kế hoạch cho phù hợp.

  • Trong các bảng mã trong đó 0x09, 0x0A và 0x20 không có các tab, dòng mới hoặc dấu cách tương ứng, các ký tự đó sẽ bị xóa.

  • Nếu mã của bạn là

    42  $@ rw$
    @42
    

    sau đó phải xuất ra Programming Puzzles. Ngoài ra, trong cùng một ngôn ngữ,

    42$@rw$@42
    

    phải đầu ra Code Golf.

Đây là , vì vậy mã ngắn nhất tính bằng byte sẽ thắng! Chúc may mắn!


3
không gian trong Code Golfcũng sẽ được loại bỏ, những gì về một trong Programming Puzzles.
colsw

2
Điều này sẽ là không thể trong ít nhất WhirlWhitespace .
Kỹ sư Toast

13
Các phiếu bầu gần là gì?
OldBunny2800

12
@ OldBunny2800 câu hỏi hay. Tôi tiếp tục hỏi điều đó nhưng bình luận bị xóa ...
lập trình

12
Việc bỏ phiếu chặt chẽ là do thiếu đầu vào và đầu ra và hạn chế về định dạng của đầu vào và đầu ra. 100% nếu bạn có một phần được gắn nhãn "quy tắc" với danh sách gạch đầu dòng những điều bạn nghĩ là rõ ràng về thử thách bạn có 0 phiếu gần. Đó là tất cả về cách trình bày với mọi người CompSci, nếu chúng ta có thể nghĩ ra một câu hỏi có vẻ ngu ngốc để hỏi có thể tiết kiệm cho chúng ta một byte hay, chúng ta sẽ cố gắng chống lại sự ngu ngốc đó và bạn sẽ là một người viết câu hỏi tuyệt vời.
Bạch tuộc ma thuật Urn

Câu trả lời:


65

Python 2 , 50 byte

print["Code\40Golf","Programming Puzzles"][" ">""]

Hãy thử trực tuyến!

Với tất cả các không gian được loại bỏ:

print["Code\40Golf","ProgrammingPuzzles"]["">""]

Hãy thử trực tuyến!

Cảm ơn Stephen S cho 3 byte và Erik Outgolfer cho 1


2
Chết tiệt, ninja! Tôi chỉ cần bấm vào Trả lời bài! +1
HyperNeutrino

1
Tôi nghĩ rằng bạn vừa phá vỡ não của bạn tôi. Làm thế nào điều này thậm chí làm việc?
Stevoisiak

11
@StevenVascellaro Thật đơn giản. Trong trường hợp đầu tiên, " ">""trả về True, vì, theo từ vựng, một khoảng trắng lớn hơn chuỗi rỗng. Trong trường hợp thứ hai, "">""trả về False, vì không có gì có thể lớn hơn chính nó. TrueFalsethực sự chỉ 10tương ứng, chỉ trong boolkiểu dữ liệu thay vì inthoặc long. Trong trường hợp đầu tiên, các khoảng trắng được giữ nguyên, vì vậy, mục tại chỉ mục 1 "Programming Puzzles", được trả về nguyên văn. Trong trường hợp thứ hai, các khoảng trắng sẽ biến mất, do đó, \x20trong mục ở chỉ số 0 "Code\x20Golf"để giữ một khoảng trắng .
Erik the Outgolfer

9
@StephenS Không, vì không giống như JavaScript, Python không có nỗi ám ảnh với việc truyền ẩn.
Mego

1
Nếu tìm thấy sự thiếu ám ảnh của Python.
John Dvorak


22

05AB1E , 15 byte

”ƒËŠˆ”" "v”–±ÇÀ

Hãy thử trực tuyến!

Giải trình

”ƒËŠˆ”           # push "Code Golf"
      " "v       # for each character in the string " " do
          ”–±ÇÀ  # push "Programming Puzzles"
                 # implicitly output top of stack

...Tôi chỉ không nhận được nó. Điều này có sử dụng nén từ điển hay cái gì không?
LegionMammal978

@ LegionMammal978 Tôi khá chắc chắn điều đó.
NoOneIsHãy

@ LegionMammal978: Nó thực sự sử dụng nén từ điển.
Emigna

5
@Emigna Được rồi, vì tôi đã kiểm tra lần cuối, cả hai chuỗi đó đều không thể vừa với 4 byte: p
LegionMammal978

1
@ Draco18s: Kevin đã viết một hướng dẫn hay trên trang mẹo mà bạn có thể sử dụng để có ý tưởng tốt hơn về cách sử dụng nó.
Emigna


16

CJam , 38 byte

" ""Programming Puzzles""Dpef!Hpmg":(?

Hãy thử trực tuyến! hoặc bị xóa khoảng trắng

Giải trình

" "                    e# Push this string.
"Programming Puzzles"  e# Push "Programming Puzzles".
"Dpef!Hpmg":(          e# Push "Dpef!Hpmg" and decrement each char, giving "Code Golf".
?                      e# If the first string is true (non-empty) return the second string,
                       e#   else return the third.

Không gian có trong chương trình hay không xác định xem chuỗi đầu tiên là trung thực hay giả.


27
Mã của bạn rất buồn:(
Roman Gräf

14
Nếu bạn sẵn sàng sử dụng unprintables, "Bncd\x19Fnke":)thay vào đó là mã hạnh phúc (thay thế \x19).
Erik the Outgolfer

15

Thạch , 18 byte

“½ċṭ6Ỵ»ḷ
“Ñ1ɦ+£)G»

Hãy thử trực tuyến!

Giải trình

Trong chương trình như đã viết, dòng đầu tiên là một hàm trợ giúp không bao giờ chạy. Dòng thứ hai (dòng cuối cùng trong chương trình) là chương trình chính và là biểu diễn nén của chuỗi "Programming Puzzles"(sau đó được in ngầm).

Nếu bạn loại bỏ dòng mới, toàn bộ sẽ trở thành một chương trình lớn. “½ċṭ6Ỵ»là biểu diễn nén của chuỗi "Code Golf". đánh giá nhưng bỏ qua đối số tay phải của nó, để lại giá trị như trước khi nó chạy; nó có thể được sử dụng để đánh giá các chức năng cho các tác dụng phụ của chúng (điều mà tôi đã làm trước đây), nhưng nó cũng có thể được sử dụng, như ở đây, để nhận xét hiệu quả mã.

Thật thú vị, logic thực tế ở đây ngắn hơn mục 05AB1E, nhưng toàn bộ mã xuất hiện lâu hơn vì trình nén chuỗi không tốt trong việc nén các chuỗi cụ thể này.


Điều này hóa ra là hợp lệ.
Erik the Outgolfer

Theo hiểu biết của tôi, một số ký tự có thể được lưu bằng một byte, giả sử các bảng mã được biết đến. trong UTF-8 tôi nhận được 36 byte ... Tôi có sai không?
steffen

@steffen: Jelly sử dụng mã hóa ký tự riêng , trong đó tất cả 256 ký tự khác nhau mà nó sử dụng có thể được lưu trữ trong một byte đơn. . khó đọc hơn nhiều.)

13

Thạch , 17 byte

“Ñ1ɦ+£)G“½ċṭ6 Ỵ»Ṃ

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

Như trong câu trả lời Jelly khác, Ñ1ɦ+£)G½ċṭ6Ỵmã hóa chuỗi Lập trình Câu đốCode Golf . bắt đầu một chuỗi bằng chữ và tách một chuỗi thành một chuỗi khác, trong khi »chọn kiểu chữ (nén dựa trên từ điển), do đó, điều này mang lại

["Programming Puzzles", "Code Golf"]

sau đó lấy tối thiểu, mang lại Code Golf .

Tuy nhiên, bằng cách thêm một khoảng trắng giữa ½ċṭ6, chúng ta có được một chuỗi thứ hai hoàn toàn khác và theo nghĩa đen là

["Programming Puzzles", "caird coinheringaahing"]

caird coinheringaahing lớn hơn về mặt từ vựng so với Câu đố lập trình , nên chọn chuỗi đầu tiên thay thế.


Chỉ cần làm như vậy với“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Jonathan Allan

Theo hiểu biết của tôi, cả hai ký tự đó đều không thể được lưu bằng một byte, giả sử các bảng mã được biết đến. trong UTF-8 tôi nhận được 34 byte ... Tôi có sai không?
steffen

@steffen Jelly sử dụng trang mã tùy chỉnh mã hóa từng trong số 256 ký tự mà nó hiểu là một byte đơn.
Dennis

@Dennis cảm ơn bạn đã làm rõ.
steffen

13

Javascript, 46 43 42 byte

x=>" "?"Programming Puzzles":"Code\40Golf"

console.log((x=>" "?"Programming Puzzles":"Code\40Golf")())
console.log((x=>""?"ProgrammingPuzzles":"Code\40Golf")())


5
Bạn có thể thay thế \x20trong chuỗi đầu tiên bằng một khoảng trắng.
Shaggy

Đánh bại tôi với nó, thực hiện tốt đẹp. Điều này có cần một dấu vết ;?
ricdesi

@ricdesi không, nó không.

3
@ricdesi vì đây là codegolf, nếu chương trình chạy, nó hoạt động. ;s đôi khi không bắt buộc trong JavaScript.
Stephen

2
Bạn có thể thay thế \x20bằng \40để lưu một byte :-)
ETHproductions

10

Ngôn ngữ Wolfram, 62 byte

"Programming Puzzles"[ToExpression@"\"Code\\.20Golf\""][[0 1]]

Không gian trong [[0 1]]là phép nhân ngầm, vì vậy điều này tương đương với [[0]]. Không có một không gian, 01chỉ là 1. Phần 0 và 1 của biểu thức này là các chuỗi chúng ta muốn.

Một giải pháp khác về tính hợp lệ đáng ngờ (44 byte, 2 được lưu bởi Kelly Lowder):

"Programming Puzzles"["Code\.20Golf"][[0 1]]

Không gian \.20được thay thế bằng một khoảng trắng ngay lập tức khi được nhập vào môi trường Mathicala, vì vậy không rõ liệu nó có bị xóa cùng với các không gian khác không


1
Ngay sau khi bạn dán (hoặc nhập) phần này vào Mathicala, (dựa trên đám mây hoặc không), chuỗi thoát, \:0020biến thành khoảng trắng và do đó sẽ bị xóa, vì vậy tôi không chắc điều này đủ điều kiện. Cũng \.20ngắn hơn.by hai nhân vật. "Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]sẽ làm việc.
Kelly Lowder

1
@KellyLowder, hmm, đó là một điểm tốt. Tôi đã thêm một giải pháp khác để tránh vấn đề đó. (Cảm ơn về \.20lời đề nghị - làm thế nào bạn tìm thấy điều đó? Tôi nghĩ rằng tôi đã quét toàn bộ tài liệu.)
Không phải là một cái cây vào

1
Tôi tìm thấy \.20bằng cách làm một lỗi đánh máy. Có vẻ như chỉ hoạt động cho mã ký tự hai chữ số. Tôi không nghĩ nó có trong tài liệu.
Kelly Lowder

8

Excel - 56 byte

=IF(""=" ","Code"&CHAR(32)&"Golf","Programming Puzzles")

Rất giống với hầu hết các câu trả lời khác ... không có gì lạ mắt ở đây.


8

Haskell, 48 byte

a _="Programming Puzzles";a4="Code\32Golf";f=a 4
a_="ProgrammingPuzzles";a4="Code\32Golf";f=a4

Xác định hàm ftrả về chuỗi tương ứng.

Để tham khảo, phiên bản cũ là:

Haskell, 49/47 byte

f""="Code\32Golf";f(_)="Programming Puzzles";f" "

với không gian bị xóa

f""="Code\32Golf";f(_)="ProgrammingPuzzles";f""

Hai mẫu đơn giản phù hợp. (_)phù hợp với tất cả các mẫu. Bạn có thể cải thiện phiên bản không có khoảng trắng bằng một byte bằng cách xác định mẫu thứ hai là f" "=/ f""=, nhưng điều này đưa ra cảnh báo "Kết hợp mẫu là dự phòng".

Giải pháp thay thế có cùng số byte:

last$"Code\32Golf":["Programming Puzzles"|" ">""]
last$"Code\32Golf":["ProgrammingPuzzles"|"">""]

7

, 33 32 byte

Sử dụng mã hóa CP437.

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀
▀4>~H├MS░l╬δ

Hãy thử trực tuyến! hoặc thử mà không có khoảng trắng

Giải trình

Với khoảng trắng:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Push "Programming Puzzles" (compressed string)
                       Implicitly output the top stack element


▀4>~H├MS░l╬δ           Helper wire (never called)

Không có khoảng trắng:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀▀4>~H├MS░l╬δ    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀                Push "Programming Puzzles" (compressed string)
                   ▀4>~H├MS░l╬δ    Push "Code Golf" (compressed string)
                                   Implicitly output top stack element

Tôi rất vui vì cuối cùng tôi đã hoàn thành nén chuỗi!
Nick Clifford

1
@NickClifford Điều gây tò mò tôi nhận thấy là Code Golfđã lâu hơn khi được nén. Tôi đoán đó là vì thủ đô? Dù bằng cách nào thì nó vẫn ngắn hơn viết bình thường vì tôi không thể sử dụng một không gian theo nghĩa đen ở đây.
Mèo kinh doanh

Vâng, Smaz là loại lạ như thế.
Nick Clifford

FYI, vui lòng ping tôi trong trò chuyện nếu bạn có bất kỳ câu hỏi hoặc yêu cầu tính năng nào cho Ohm.
Nick Clifford

7

Japt , 29 byte

Với không gian:

`Co¸{S}Golf`r `PžgŸmÚÁ Puzz¤s

Hãy thử trực tuyến!

Không có không gian:

`Co¸{S}Golf`r`PžgŸmÚÁPuzz¤s

Hãy thử trực tuyến!


Điều này lợi dụng thực tế là trong Japt, một không gian đóng một cuộc gọi phương thức. Với khoảng trắng, mã này tương đương với mã JavaScript này:

("Code"+(S)+"Golf").r(),"Programming Puzzles"

Điều này được đánh giá là JavaScript và kết quả được gửi đến STDOUT. Vì biểu thức cuối cùng là"Programming Puzzles" , chuỗi đó được in.

Không có khoảng trắng, mã gần tương đương với:

("Code"+(S)+"Golf").r("ProgrammingPuzzles")

(Nếu bây giờ bạn chưa tìm ra nó, thì Sbiến là một khoảng trắng.) .r()Phương thức trên một chuỗi, nếu được cung cấp một đối số, sẽ xóa tất cả các phiên bản của đối số đó khỏi chuỗi. Vì "Code Golf"không chứa "ProgrammingPuzzles", nó trả về "Code Golf"không thay đổi, sau đó được gửi đến STDOUT.


Tôi thậm chí không nghĩ đến việc sử dụng thay thế. Đẹp quá
Tom

Theo hiểu biết của tôi, một số ký tự có thể được lưu bằng một byte, giả sử các bảng mã được biết đến. trong UTF-8 tôi nhận được 36 byte ... Tôi có sai không?
steffen

@steffen Japt sử dụng mã hóa ISO-8859-1, trong đó mỗi char đại diện cho một byte. Nhưng một số ký tự sẽ không thể in được trong chương trình này, vì vậy tôi đã sử dụng mã hóa Windows-1252 ở đây (thực ra, nó đã được TIO tự động tạo ra )
ETHproductions

6

Brachylog , 44 byte

" "Ṣ∧"Programming Puzzles"w|"Code"wṢw"Golf"w

Hãy thử trực tuyến!

Giải trình

" "Ṣ                                           If " " = Ṣ (which is itself " ")
    ∧"Programming Puzzles"w                    Write "Programming Puzzles"
                           |                   Else
                            "Code"w            Write "Code"
                                   Ṣw          Write " "
                                     "Golf"w   Write "Golf"

1
Crossed out 44 vẫn là 44 :( Chỉnh sửa ở &nbsp;hai bên để sửa :)
HyperNeutrino

@HyperNeutrino Nó không bị gạch bỏ, 44 là chiều dài có khoảng trắng và 42 không có.
Gây tử vong

Oh. Rất tiếc. Chà, nó quá giống nhau nên tôi không thể nói mà không nhìn vào phần đánh dấu bằng cách chỉnh sửa. Đừng
bận

5

Alice , 44 byte

/"floG!"t"edoC"#
 /"selzzuP gnimmargorP"d&o@

Hãy thử trực tuyến!

Không có khoảng trắng:

/"floG!"t"edoC"#/"selzzuPgnimmargorP"d&o@

Hãy thử trực tuyến!

Giải trình

Trong chương trình đầu tiên, hai gương /chuyển hướng con trỏ lệnh lên dòng thứ hai. "selzzuP gnimmargorP"đẩy các điểm mã cần thiết theo thứ tự hoàn nguyên, dđẩy độ sâu ngăn xếp và &oin nhiều byte. @chấm dứt chương trình.

Không có khoảng trắng, chương trình chỉ nằm trên một dòng. Trong trường hợp đó, con trỏ lệnh không thể di chuyển trong chế độ Thông thường, do đó, /hiệu quả trở thành không hoạt động (về mặt kỹ thuật, IP đơn giản không di chuyển trong một bước, cùng /được thực hiện lại và IP phản ánh trở lại chế độ Cardinal ). Vì vậy, nếu chúng ta bỏ những thứ đó khỏi chương trình, nó sẽ trông như thế này:

"floG!"t"edoC"#"selzzuPgnimmargorP"d&o@

Để bao gồm không gian trong Code Golf, chúng tôi sử dụng dấu chấm than thay thế và giảm nó với t. Sau khi chúng tôi có tất cả các điểm mã trên ngăn xếp, #bỏ qua lệnh tiếp theo, đó là toàn bộ chuỗi thứ hai. d&osau đó in lại ngăn xếp và @kết thúc chương trình.


Bạn phải đánh gôn này (gạch bỏ 44 là 44)
MilkyWay90

5

PHP, 44 byte

điều hành ternary

<?=" "?"Programming Puzzles":"Code\x20Golf";

PHP, 51 byte

bình luận

<?=/** /"Code\x20Golf"/*/"Programming Puzzles"/**/;

PHP, 57 byte

chuyển mảng

<?=["Code\x20Golf","Programming Puzzles"][(ord("
")/10)];

5

Lisp chung (SBCL), 52 byte

(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)

Bản in Programming Puzzles

(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)

Bản in Code Golf

Ung dung:

(format t "~[Programming Puzzles~;Code Golf~]" 0 1)

Giải thích:

Bí quyết cơ bản đến từ cách #'format hoạt động trong Common Lisp.

Trong CL, hầu hết các khoảng trắng có thể được bỏ qua miễn là không có sự mơ hồ về nơi mã thông báo bắt đầu hoặc kết thúc. Thủ thuật đầu tiên là phân tách các biểu tượng formatt. Tôi đã phải kết thúc rõ ràng formatbiểu tượng mà không thay đổi cách tgiải thích. May mắn thay, `trong CL kết thúc mã thông báo trước đó trước khi nó được xử lý và ,hủy bỏ hiệu ứng của` (` được sử dụng để thực hiện tạo khuôn mẫu, trong đó biểu thức tiếp theo sau nó được "trích dẫn", nhưng bất kỳ biểu thức con nào có tiền tố, đều được đánh giá và kết quả được bao gồm trong khuôn mẫu, vì vậy `, gần như không có).

Đối số thứ ba formatlà chuỗi mẫu.formattương tự như printf trong C, nhưng có các chỉ thị định dạng mạnh hơn nhiều và sử dụng ~ để chỉ ra chúng thay vì%. ~ [và ~] cho phép bạn chọn giữa nhiều tùy chọn để in, với ~; tách chúng ra Một đối số bổ sung được cung cấp cho định dạng - chỉ mục số mà bạn muốn in. Để đảm bảo rằng "" trong Code Golf tồn tại, tôi đã sử dụng chỉ thị lập bảng ~ T, được sử dụng để chèn khoảng trắng, thường để căn chỉnh văn bản vào các cột. ~ @ T là một biến thể chỉ chèn một số khoảng trắng nhất định, mặc định là 1.

Cuối cùng, có hai đối số định dạng- 0 và 1. Trước khi xóa khoảng trắng, 0 được sử dụng bởi ~ [~; ~] để chọn "Câu đố lập trình" và bỏ đối số định dạng bổ sung (1) không chắc chắn làm thế nào tiêu chuẩn bỏ các đối số định dạng bổ sung, nhưng điều này hoạt động trên Steel Bank Common Lisp). Sau khi khoảng trắng được xóa, chỉ có một đối số (01) chọn "Code Golf" thay thế.


1
+1, chỉ một điều: "nhưng bất kỳ biểu thức con nào có tiền tố a ,được đánh giá và ghép trong" Không ,@cần thiết để ghép?
PrzemysławP

"Ghép" là một thuật ngữ kém cho điều đó, phải thừa nhận. Về mặt kỹ thuật, ,tránh biểu thức tiếp theo và bao gồm kết quả trong mẫu, trong khi ,@giả sử biểu thức sẽ đánh dấu vào danh sách và bao gồm trực tiếp nội dung của danh sách đó trong mẫu. Theo truyền thống trong cộng đồng lisp, ,@được gọi là "nối", nhưng tôi không chắc đó là lựa chọn rõ ràng nhất. Tôi sẽ cố gắng để điều chỉnh lại một chút.
djeis


4

C # 88 81 70 63 byte

Func<string>@a=()=>" "==""?"Code\x20Golf":"Programming Puzzles";

Với khoảng trắng bị tước:

Func<string>@a=()=>""==""?"Code\x20Golf":"ProgrammingPuzzles";

Cảm ơn BrianJ đã chỉ cho tôi cách không có khoảng trắng giữa kiểu trả về phương thức và tên phương thức, PeterTaylor để lưu 7 18 byte và Patrick Huizinga để lưu 7 byte.

Cùng một phương pháp như mọi người khác thực sự, kỹ thuật này có thể được coi là vô hiệu vì phương pháp này không xác định kiểu trả về cho phương pháp này, nhưng có được khoảng trắng giữa các kiểu trả về và tên phương pháp.


1
bạn có thể đặt tiền tố tên hàm bằng một @, vì vậy sau đó bạn có void@a...và tránh lỗi biên dịch "không trả về kiểu" (cũng thêm byte, mặc dù :()
Brian J

.Length<1tiết kiệm một byte; \u0020tiết kiệm sáu nếu tôi đếm đúng; và bạn có thể tạo câu trả lời hợp lệ (và lưu một vài byte cùng một lúc) bằng cách gửi lambda thay vì hàm cấp cao nhất. Func<string>a=()=>...
Peter Taylor

@BrianJ Hmm, không biết điều đó, tự hỏi tại sao nó hoạt động từ quan điểm của trình biên dịch. Dù sao, nó có thể mất byte nhưng về mặt kỹ thuật cũng làm cho câu trả lời này không phải là không cạnh tranh, vì vậy nó đáng giá. Cảm ơn!
Skidsdev

@Mayube @được sử dụng chủ yếu nếu bạn cần sử dụng một từ dành riêng làm tên biến (tương đương với []VB.NET (và MS SQL Server)).
Brian J

1
Vâng, nó yêu cầu trả về chuỗi; nhưng nếu bạn sử dụng =>thay vì returnbạn không cần bất kỳ khoảng trống. (Và ngay cả khi bạn sử dụng return, bạn có thể return(...)).
Peter Taylor

4

Java 8, 74 50 48 byte

()=>" "==""?"Code\040Golf":"Programming Puzzles"

@Nonlinear Quả là bạn đúng, tôi đã thay đổi cái đó thành không có thẩm quyền
Khaled.K

1
Tôi không nghĩ in ấn là một yêu cầu, vì vậy bạn chỉ có thể trả về chuỗi. Tôi chưa thử nghiệm nhưng ==nhà điều hành cũng sẽ hoạt động,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
Phi tuyến

1
\u00A0-> \040để tiết kiệm 2 byte.
Chọc



3

R, 50 byte

Tôi nghĩ rằng điều này giống như câu trả lời Javascript này và về cơ bản là cùng một ý tưởng với tất cả những người khác.

`if`(' '=='','Code\x20Golf','Programming Puzzles')


3

đc , 50

[pq]sm[Programming Puzzles]dZ19=m[Code]n32P[Golf]p

Dùng thử trực tuyến .

[ ]định nghĩa một chuỗi - Zđo chiều dài của nó. Nếu độ dài là 19 thì nó chứa một khoảng trắng và macro được lưu trong thanh ghi m được gọi, nó sẽ in Programming Puzzlesvà thoát. Nếu không thì Code Golfđược in.


Bạn có thể liên kết đến trình thông dịch / docs / github dc không?
lập trình

@ lập trình5000 Chỉ cần chọn dc trên TIO, sau đó nhấp vào tên ngôn ngữ.
Dennis

@Dennis cảm ơn, tôi thậm chí còn không biết rằng TIO làm điều đó!
lập trình


3

T-SQL, 96 82 81 67 byte

print+iif(len(' x')=2,'Programming Puzzles','Code'+char(32)+'Golf')

Dùng thử trực tuyến | Không có không gian

Phiên bản cũ (96 byte):

select(case'x'when(replace(' ',' ','x'))then'Programming Puzzles'else'Code'+nchar(32)+'Golf'end)

Làm tốt lắm, bạn có thể đạt 67 bằng cách mất các parens bên ngoài và thay đổi điều kiện thànhiif(len(' x')=2
BradC

@BradC Đóng, nhưng paren bên ngoài ngăn không cần khoảng trắng sau print. Tôi đã sử dụng một +thay thế và nó đã làm việc.
mbomb007

Phải dán và đếm sai. Và tôi cũng không biết, nhưng điểm cộng là nhân vật đầu tiên tôi đã thử và nó đã hoạt động.
mbomb007

3

Perl 5 , 43 41 byte

say" "?"Programming Puzzles":Code.$".Golf

Hãy thử trực tuyến!

Sử dụng thực tế ' 'là đúng trong perl và ''là sai. Các $"biến được đặt vào một không gian theo mặc định.

Cảm ơn @NahuelFouilleul vì đã xóa hai byte.


có thể muộn nhưng "Code$\"Golf"ngắn hơn và Code.$".Golfquá
Nahuel Fouilleul

@NahuelFouilleul Vâng, tôi khá mới khi viết câu trả lời này. Cảm ơn mặc dù!
Chris


2

Befunge , 76 byte

" "0`#v_"floG"84*"edoC",,,,,,,,,@
,,,,,@>"selzzuP gnimmargorP",,,,,,,,,,,,,,

Hãy thử trực tuyến!

Không phải là giải pháp nhỏ gọn nhất, nhưng sau đó viết lại mã Befunge mà không có khoảng trắng là khá khó khăn.

Lúc đầu, nó so sánh một ký tự khoảng trắng với 0. Nếu lớn hơn, nó sẽ đi đến hàng dưới cùng. Nếu không, đó là những gì xảy ra khi bạn thay thế không gian bằng không có gì, nó sẽ ở hàng đầu tiên.


Các ,s làm gì?
lập trình

@ lập trình viên5000 Mỗi bản in một ký tự.
Martin Ender

Mẹo để in một số lượng lớn ký tự cho đến khi bạn đạt 0 là làm điều >:#,_đó có thể giúp bạn tiết kiệm rất nhiều byte
MildlyMilquetoast
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.