Xin vui lòng gửi cho tz codez!


8

Lưu ý cho Người điều hành và người chỉnh sửa : Tiêu đề của bài đăng này có hiệu lực và không nên thay đổi. Lỗi chính tả là cố ý và là một phần của thách thức.

Backstory

Câu hỏi SO xấu điển hình (âm thanh nổi) hỏi điều gì đó dọc theo dòng "plz send teh codez!" Nói cách khác, nó yêu cầu ai đó thực hiện công việc cho người hỏi và cung cấp giải pháp hoàn chỉnh cho vấn đề một lần. Tôi trích dẫn câu hỏi này trên Meta.SE :

... Đó là về một loại câu hỏi cụ thể bao gồm hoàn toàn không có nghiên cứu, không nỗ lực và chỉ đơn giản là yêu cầu giải pháp hoàn chỉnh cho một vấn đề. Những loại câu hỏi này thường có xu hướng cho rằng Stack Overflow là một dịch vụ mã hóa miễn phí ...

Vậy thử thách thực sự của bạn là gì? Nó đơn giản

Chương trình hoặc chức năng của bạn, v.v. phải lấy đầu vào dưới dạng chuỗi (từ STDIN, tham số, v.v.) và nếu chuỗi chứa Plz send teh codez!đầu ra -1 flag comment(downvote, gắn cờ là ngoài chủ đề và nhận xét về mức độ xấu của câu hỏi.) +1(bạn đang nâng cao).

Nhưng xin chờ chút nữa!

Chương trình của bạn không được chứa 5 bộ ký tự trở lên:

  • Tất cả các ký tự đặc biệt (bất cứ thứ gì không phải là dấu cách, dòng mới ( 0x0a), bảng chữ cái không phân biệt chữ hoa chữ thường hoặc chữ số)
  • Bất kỳ chữ số nào (0-9)
  • Bất kỳ pzcm(không phân biệt chữ hoa chữ thường)
  • Bất kỳ hten(không phân biệt chữ hoa chữ thường)
  • Bất kỳ qwryuioasdfgjklxvb
  • Bất kỳ QWRYUIOASDFGJKLXVB

Để rõ ràng, bạn chỉ có thể sử dụng tối đa 4 trong số các bảng mã đó.

Dấu cách, tab và dòng mới không bị hạn chế theo bất kỳ cách nào, nhưng chúng vẫn được bao gồm trong số byte của bạn

Hạn chế cuối cùng

Chương trình của bạn phải chứa CHỈ Unicode trong phạm vi từ 0x20(khoảng trắng) đến 0x7e(~), cũng như 0x0a(dòng mới của LF) và 0x09(tab). Điều này là để loại trừ các ngôn ngữ chơi gôn mã và thay đổi ngôn ngữ truyền thống hoặc ít nhất là san bằng sân chơi.

Ghi chú:

  • Đây là , câu trả lời ngắn nhất trong byte thắng!
  • Đầu vào có thể từ STDIN, tham số chức năng, tham số dòng lệnh, v.v. nhưng không phải là biến .
  • Đầu ra có thể là STDOUT, giá trị trả về của hàm hoặc thậm chí là lỗi / ngoại lệ. Có thể bao gồm một dòng mới.
  • Các ngôn ngữ truyền thống được khuyến khích cạnh tranh vì thử thách này cấm rất nhiều ngôn ngữ chơi gôn bằng cách loại trừ các ký tự Unicode cao. C thậm chí có thể có cơ hội chiến thắng!
  • Có câu hỏi nào không? Bình luận dưới đây!

Nếu nó quá khó

Bạn có thể bỏ qua các bộ ký tự trong câu trả lời của bạn, nhưng sau đó nó trở nên không cạnh tranh.

LƯU Ý: Bây giờ bạn có thể sử dụng tối đa 4 bộ ký tự. Không có gì.

Bạn có thể sử dụng đoạn mã này để kiểm tra xem mã của bạn có hợp lệ không:

Câu trả lời:


3

CJam , 50 49 48 byte

q"Plz send teh codez!"#)"- flag comment""+"?(T)@

Không sử dụng chữ số hoặc chữ in hoa được đặt.

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

Giải trình

q                       e# Push the input
"Plz send teh codez!"#  e# Find index of "Plz send teh codez!" in the input (-1 if not found)
)                       e# Increment the index
                        e# Check the truthiness of the index:
 "- flag comment"       e#   If truthy (i.e. it appeared in the input), push this string
 "+"                    e#   If falsy (it wasn't in the input), push this string
?                       e# 
(                       e# Uncons from left, removes the first character of the string and 
                        e#  pushes it on the stack
T)                      e# Push 0, and increment it to 1
@                       e# Bring third-from-top stack element to the top
                        e# Implicit output of stack contents

11

JavaScript (ES6), 60 byte

x=>/Plz send teh codez!/.test(x)?~x+' flag comment':'+'+-~[]

Mọi thứ đều đơn giản, ngoại trừ việc tránh sử dụng ở 1bất cứ đâu. Tôi sử dụng ~xđể lấy -1(vì nếu xchứa Plz send teh codez!, nó không phải là số hợp lệ và do đó ~xsẽ cung cấp -1) và -~[]để nhận 1(vì nếux là ví dụ '7', -~xsẽ là 8, vì vậy chúng tôi không thể dựa vào x).

Kiểm tra đoạn


Lạm dụng logic của JSFuck!
Matthew Roh

9

JS (JSFuck), 37959 byte

Đây là một ý chính , vì PPCG ghét các mã dài.

Chỉ sử dụng các ký tự đặc biệt. : P

Đây là mã gốc:

alert(prompt().includes("Plz send teh codez!")?"-1 flag comment":"+1")

Bạn đã không viết hoa chữ P .;)
darrylyeo

@darryleo Nó được cho là.
Matthew Roh

Chữ P trong Plz send teh codez!, ý tôi là.
darrylyeo

Oh chờ đợi bây giờ zlà sai. facepalm
Matthew Roh

4

C, 102 byte

i;f(char*s){i=strstr(s,"Plz send teh codez!");printf("%+d%s",i?'a'-'b':'b'-'a',i?" flag comment":"");}

Không sử dụng bất kỳ chữ số hoặc bất kỳ chữ số nào QWERTYUIOASDFGHJKLXVBN. Hãy thử trực tuyến!


4

Võng mạc , 56 byte

(?!.*Plz send teh codez).+

.+
-$#+ flag comment
^$
+$#+

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

Sử dụng các ký tự đặc biệt, hai bộ chữ cái không phân biệt chữ hoa chữ thường và các chữ cái viết thường khác.

Đầu tiên chúng tôi xóa toàn bộ đầu vào nếu nó không chứa Plz send teh codez. Nếu có bất kỳ đầu vào nào còn lại, chúng tôi thay thế bằng -1 flag comment, tránh chữ số bằng $#+. $+đề cập đến nhóm bắt giữ cuối cùng$0 (toàn bộ trận đấu) không có nhóm bắt giữ. $#+sau đó đưa ra số lần chụp, luôn luôn là1 .

Cuối cùng, nếu chuỗi vẫn trống (tức là chúng tôi đã xóa nó trong giai đoạn đầu tiên), chúng tôi thay thế nó bằng +1(một lần nữa sử dụng $#+cho 1).


2

C #, 77 byte

x=>x.Contains("Plz send teh codes!")?$"{'x'-'y'} flag comment":$"+{'x'/'x'}";

Không thể sử dụng chữ số là một nỗi đau như vậy.


2

Con trăn 2 95 94 87 byte

Sử dụng các ký tự đặc biệt và tất cả các chữ thường chữ thường (cộng với ba bộ char và ngoại trừ "p", không phân biệt chữ hoa chữ thường) cho tổng số bốn bộ ký tự được sử dụng .

b=ord('b')-ord('a')
print["+"+`b`,`-b`+" flag comment"][input()=="Plz send teh codez!"]

Hãy thử trực tuyến! Cảm ơn @math_junkie vì đã lưu 8 byte! Cảm ơn @officialaimm vì đã lưu hai byte!


a=ord     

Hãy aord()hàm tích hợp.

b=str(a('b')-a('a'))

Điều này thực sự b=1.

print["+"+b, "-"+b+" flag comment"][input()=="Plz send teh codez!"]

Nếu câu lệnh trong cặp dấu ngoặc thứ hai là đúng, hãy in chuỗi thứ hai trong cặp dấu ngoặc thứ nhất. Nếu không, in cái đầu tiên.


Bạn có thể tiết kiệm 5 byte bằng cách tránh str, và bạn bằng cách loại bỏ các không gian sau print: repl
junkie toán

@math_junkie Điều đó tạo ra lỗi nối một số nguyên với một chuỗi
Anthony Phạm

Xem liên kết trong nhận xét trên của tôi
toán rác

bạn có thể tiết kiệm 2 byte bằng cách loại bỏ a = ord và thực tế sử dụng ord ... có vẻ như tiết kiệm của nó, nhưng nó không ... Tôi có giống nhau: D
officialaimm

Bạn có thể tiết kiệm thêm hai lần nữa với lambda:lambda n,b=ord('b')-ord('a'):["+"+`b`,`-b`+" flag comment"][n=="Plz send teh codez!"]
nghiện toán học

2

Trăn 2/3, 81 76 68 byte

lambda x:["+%s","-%s flag comment"]["Plz send teh codez!"in x]%+True

Sử dụng:

  • Tất cả các ký tự đặc biệt (bất cứ thứ gì không phải là khoảng trắng, dòng mới (0x0a), bảng chữ cái không phân biệt chữ hoa chữ thường hoặc chữ số)
  • Bất kỳ pzcm(không phân biệt chữ hoa chữ thường)
  • Bất kỳ hten(không phân biệt chữ hoa chữ thường)
  • Bất kỳ qwryuioasdfgjklxvb

Không sử dụng:

  • Bất kỳ QWRYUIOASDFGJKLXVB
  • Bất kỳ chữ số nào (0-9)

-8 byte nhờ math_junkie


1
Lưu 4 byte với tra cứu mảng: TIO
nghiện toán học

1
Tiết kiệm thêm 4 bằng cách sử dụng +thay vì int: TIO
nghiện toán học

@math_junkie Những ý tưởng tuyệt vời!
L3viathan

2

Python 3, 115 byte

if"p".upper()+"lz send teh codez!"in input():print("-"+str(len('a'))+" flag comment")
else:print("+"+str(len('a')))

Nó không sử dụng số hoặc chữ in hoa.

Dùng thử trực tuyến


Bạn có thể loại bỏ một số không gian, giống như giữa if "p", codez!" invv
mbomb007

Việc gán str(len('a'))cho một biến có thể giúp bạn tiết kiệm thêm một vài chi tiết. Nối số trực tiếp vào chuỗi thay vì gọi strcũng có thể là lợi thế.
Sói Julian

1

Lisp thông thường, 81 byte

Đặc biệt + chữ thường + 2 trường hợp hỗn hợp = 4 bảng mã

(format t"~:[+~s~;-~s flag comment~]"(search"Plz send teh codez!"(read-line))(*))

Ung dung

(format t "~:[+~s~;-~s flag comment~]"
        (search "Plz send teh codez!" (read-line))
        (*))

Giải trình

(read-line)

Chấp nhận một dòng đầu vào từ *standard-input* (STDIN, theo mặc định).

(search "Plz send teh codez!" ...)

Quét qua đối số thứ hai (dòng đọc) cho chỉ mục nơi bắt đầu đối số thứ nhất. Trả về chỉ số này hoặcnil (sai) nếu không thể tìm thấy.

(*)

Phép nhân trong lisp được định nghĩa để lấy số lượng đối số tùy ý, kể cả không có - trong trường hợp đó, nó luôn trả về 1.

(format t "~:[+~s~;-~s flag comment~]" ...)

#'formattương tự fprintfhoặc sprintftrong C. Đó là đối số đầu tiên , theo mặc định t, chỉ định đầu ra là *standard-output*(STDOUT, theo mặc định). Đối số tiếp theo là chuỗi định dạng. "~" được sử dụng như "%" trong printf- (các) ký tự theo sau nó chỉ định thao tác định dạng.

"~:[<a>~;<b>~]"là hoạt động định dạng có điều kiện. Nó nhận một đối số và tiếp tục với <a>nếu đối số là nil(sai). Bất kỳ giá trị nào khác, như t(đúng) hoặc một số (ví dụ), sẽ tiếp tục với nó <b>. Đối số thứ ba để định dạng (chuỗi đầu tiên, sau tvà chuỗi định dạng) là tìm kiếm, do đó <a>sẽ được chọn nếu tìm kiếm thất bại (và <b>nếu không).

Trong trường hợp này, nhánh <a>( nil/ false) in "+ ~ s". "~ s" chuyển đổi một đối số định dạng thành một chuỗi và in ra các ký tự của nó. Đối số thứ tư để định dạng (chuỗi thứ hai, sau tvà chuỗi định dạng) là(*) 1, do đó chúng tôi được in "+1".

Các <b>chi nhánh cũng tương tự như: "- ~ s cờ bình luận". Nó cũng sử dụng đối số thứ tư (thứ hai) để điền vào "~ s" của nó, do đó, nó in ra "-1 bình luận cờ".


1

sh + sed, 72 byte

Sử dụng bộ ký tự: 1, 3, 4, 5.

let ""
sed "s/.*Plz send teh codez!.*/-$? flag comment/
tz
s/.*/+$?/
:z"

Lúc đầu, tôi muốn đi với sed thuần túy, nhưng tôi không biết làm thế nào để tránh sử dụng chữ số. Vì vậy, tôi đã sử dụng sh chỉ cho điều đó. let ""có trạng thái thoát 1, vì nó không thể được đánh giá là biểu thức số học.

z chỉ là một nhãn hiệu và có thể được thay thế bằng bất kỳ nhân vật nào khác.


1

Toán học, 265 byte

Điều này thật khó.

t[s_,n_]:=ToString@s~StringTake~{n};If[StringFreeQ[#,t[Head[a^b],i=-I I]<>"l"<>(s=t[RSolve[f[a+i]==f@a-i/Sqrt@a,f@a,a],(i+i+i+i)^(e=i+i+i)+i+e])<>" send teh "<>(k=t[i/Sin@x,e])<>"ode"<>s<>"!"],"+"<>t[i,i],"-"<>t[i,i]<>" flag "<>k<>"o"<>(n=Head[a b]~t~e)<>n<>"ent"]&

Phiên bản dễ đọc:

t[s_, n_] := ToString@s~StringTake~{n}; 
If[StringFreeQ[#, 
   t[Head[a^b], i = -I I] <> 
    "l" <> (s = 
      t[RSolve[f[a + i] == f@a - i/Sqrt@a, f@a, 
        a], (i + i + i + i)^(e = i + i + i) + i + e]) <> 
    " send teh " <> (k = t[i/Sin@x, e]) <> "ode" <> s <> "!"], 
  "+" <> t[i, i], 
  "-" <> t[i, i] <> " flag " <> k <> "o" <> (n = Head[a b]~t~e) <> n <>
    "ent"] &

Sử dụng các ký tự đặc biệt hten, qwryuioasdfgjklxvbQWRYUIOASDFGJKLXVB . Toán học không có ký tự đặc biệt về cơ bản là không thể, và hầu như tất cả các hàm liên quan đến chuỗi đều có Stringtrong tên của chúng, do đó thực sự giới hạn sự lựa chọn ở đây

Để có được các bộ ký tự khác, chúng ta cần một vài thủ thuật. Đầu tiên, để có được 1chúng ta lấy số âm của bình phương của số ảo I: i = -I I. Sau này chúng tôi cũng định nghĩa3 bởie = i+i+i .

Bức thư Pkhá đơn giản: Mathicala đối xử với a^bbên trong như Power[a,b]vậy, vì vậy tất cả những gì chúng ta cần làm là lấy phần đầu của ( Power) này, biến nó thành một chuỗi và lấy chữ cái đầu tiên (còn gọi là i). (Chúng tôi sẽ biến mọi thứ thành chuỗi và lấy chữ cái thứ n rất nhiều, vì vậy chúng tôi xác định t[s_,n_]:=ToString@s~StringTake~{n}.) Chữ cái mtương tự: lấy đầu của a b, đó làTimes , và nhận được thứ ba (aka eth) lá thư.

Bức thư ckhó hơn một chút: chúng tôi sử dụng danh tính lượng giác 1/Sin[x] == Csc[x](hay đúng hơn là i/Sin[x]vì chúng tôi không thể sử dụng 1) và lấy chữ cái thứ ba Csc[x].

Phần thực sự khó khăn là z. Để thực hiện z, chúng tôi sử dụng HurwitzZetahàm (vâng, thực sự). Chúng ta có được điều đó bằng cách giải quyết mối quan hệ lặp lại RSolve[f[a + i] == f@a - i/Sqrt@a, f@a, a], tạo ra chuỗi

"                             1            1
 {{f[a] -> C[1] + HurwitzZeta[-, a] - Zeta[-]}}
                              2            2"

trong đó nhân vật thứ 68 là z. Chúng tôi nhận được số 68 là4^3 + 4 .

Điều này có thể có thể được đánh giá cao hơn: các công cụ zeta Hurwitz được sao chép khá nhiều từ tài liệu Mathicala, và có lẽ có một cách ngắn hơn để có được 68 - hoặc chúng ta có thể sử dụng một phương pháp khác hoàn toàn cho z. Bất kỳ đề xuất?


1

Python 3.5 ( 137 102 98 87 85 94 byte)

Sử dụng chữ cái nhỏ (3 bộ ký tự) + ký tự đặc biệt (1 bộ ký tự) = 4 bộ ký tự

tôi gần như đã lên kế hoạch để tránh các khoảng trắng, nhưng vết lõm ở trăn buộc tôi phải giữ một dòng mới để tôi rời khỏi các khoảng trắng như chúng.

i=str(ord('b')-ord('a'))
print(['+'+i,'-'+i+' flag comment']['Plz send teh codez!'in input()])

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

  • đã lưu 35 byte !!!!: hình như tôi đã quên sự tồn tại của hàm trên () trước đây (ngớ ngẩn với tôi !!)
  • đã lưu 4 byte: giảm i = input () xuống chỉ đầu vào ()
  • đã lưu 11 byte !!!: Cảm ơn Anthony-Phạm (được sử dụng 'P' vì nó hợp lệ trong bộ ký tự)
  • đã lưu 2 byte: (đã xóa a = ord; đã học được rằng rút ngắn một hàm không phải lúc nào cũng là một ý tưởng hay !: D)
  • đã thêm 9 byte: Cảm ơn toán học đã chỉ ra rằng tôi đã không hiển thị +1 cho các chuỗi không có 'Plz gửi teh codez!' trước.

1
Chà vì bạn đã sử dụng p (và được xác định là không phân biệt chữ hoa chữ thường), bạn không cần.upper()
Anthony Phạm

1
Bạn cần xuất ra +1đầu vào không chứaPlz send teh codez!
toán rác

Cảm ơn vì đã chỉ ra điều đó, tôi không biết về điều đó cho đến bây giờ ...: D
chính thức tuyên bố

0

Groovy, 78 byte

{a="a".length();it.contains("Plz send teh codez!")?-a+" flag comment":"+"+a}

Không sử dụng số hoặc bộ chữ hoa.

Chỉ cần sử dụng đơn giản của toán tử ternary. "a".length()là một cách giải quyết để có được 1

Hay nói, là một tài tài của, qua, qua, qua một tài khác, qua giữ, qua một tài khác


0

Swift (không cạnh tranh) - 64 byte

print(x.contains("Plz send teh codez!") ?"-1 flag comment":"+1")

Thật không may, đã sử dụng 5 bộ ký tự, không thể làm cho nó mà không có chúng ... Đề xuất được chào đón!

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.