Chào thế giới! với sự lặp lại nhân vật hạn chế


79

Trong ngôn ngữ bạn chọn, hãy viết chương trình xuất ra chính xác các ký tự Hello world!theo dòng mới. Mật mã:

  • không nên sử dụng bất kỳ ký tự nào quá hai lần (chữ và số, ký hiệu, khoảng trắng ... bất cứ thứ gì)
  • không nên sử dụng bất kỳ nguồn lực bên ngoài nào
  • không nên sử dụng bất kỳ đầu vào của người dùng
  • không nên xuất bất cứ thứ gì khác

Một ví dụ về chương trình python hợp lệ:

print("He%so world!"%(2*'l'))

Một ví dụ về chương trình python không hợp lệ (ký tự 'r' được sử dụng ba lần):

print("Hel"+chr(108)+'o world!')

Người chiến thắng là người có nhiều phiếu bầu nhất sau 14 ngày.

EDIT: Một người chiến thắng đã được chọn! Cảm ơn tất cả công việc của bạn về câu hỏi này!


25
Điều gì về chữ o lặp đi lặp lại trong ví dụ python "hợp lệ". Ngoài ra còn có: - "'()
Adam Speight

15
@AdamSpeight có ý gì? Bức thư chỉ được sử dụng hai lần, theo thông số kỹ thuật.
Josh

5
@AdamSpeight ... nghĩa đen là như vậy.
VisioN

4
Tôi nghĩ bạn có nghĩa là một nhân vật không nên xuất hiện nhiều hơn hai lần, nghĩa là không nên lặp lại nhiều lần.
Michael Kay

56
Tôi đoán brainfuck là ra khỏi câu hỏi ...
jub0bs

Câu trả lời:


61

Ruby (1.9+)

Vì đây là một cuộc thi nổi tiếng, chúng ta hãy cố gắng không sử dụng BẤT K of nhân vật nào trong 'Xin chào thế giới!' trong khi vẫn sử dụng các ký tự khác chỉ tối đa hai lần:

puts("S\107VsbG8gV29ybGQhCg".unpack(?m))

Đó là 40 ký tự btw.

Bash

Và cái này sử dụng phép thuật unicode.

Ghi chú:

  • Trong khi các ký tự gốc xuất hiện ở nơi khác (không giống như ví dụ ruby), chuỗi in chỉ chứa các ký tự không phải mã ascii.
  • Hai trong số ba khoảng trắng thực sự là các tab, vì vậy không có ký tự utf-8 nào xuất hiện hơn 2 lần
  • Vì nhị phân, một số octet xuất hiện hơn 2 lần, hy vọng điều đó không trái với quy tắc. Tôi đang cố gắng giải quyết chúng mặc dù.

Mã số:

echo '𝓗𝐞𝑙𝒍𝓸 𝓦𝗈𝖗𝖑𝘥¡'|iconv -t  asCIi//TRANSLIT

Đối với những người không cài đặt một phông chữ thích hợp, nó trông như thế này:

mã như hình ảnh

Đây là hexdump:

00000000  65 63 68 6f 20 27 f0 9d  93 97 f0 9d 90 9e f0 9d  |echo '..........|
00000010  91 99 f0 9d 92 8d f0 9d  93 b8 e2 80 8a f0 9d 93  |................|
00000020  a6 f0 9d 97 88 f0 9d 96  97 f0 9d 96 91 f0 9d 98  |................|
00000030  a5 c2 a1 27 7c 69 63 6f  6e 76 09 2d 74 09 61 73  |...'|iconv.-t.as|
00000040  43 49 69 2f 2f 54 52 41  4e 53 4c 49 54 0a        |CIi//TRANSLIT.|
0000004e

Bạn phải chạy nó trên một máy có bộ ký tự mặc định là utf-8. Tôi đã thử trên OSX10.8 bằng iTerm2 với môi trường sau:

Bash chạy trong iTerm2

PHP 5.4

Cái này sử dụng zLib: (tiếc là nó sử dụng các ký tự eo)

<?=gzuncompress('x▒▒H▒▒▒W(▒/▒IQ▒!qh');

Hexdump:

00000000  3c 3f 3d 67 7a 75 6e 63  6f 6d 70 72 65 73 73 28  |<?=gzuncompress(|
00000010  27 78 9c f3 48 cd c9 c9  57 28 cf 2f ca 49 51 e4  |'x..H...W(./.IQ.|
00000020  02 00 21 71 04 68 27 29  3b                       |..!q.h');|
00000029

+1

Đây là mã ruby ​​2.0 tôi đã sử dụng để kiểm tra các bản sao:

d=ARGF.read
p [d.split(//),d.unpack('C*')].map{|x|x.inject(Hash.new(0)){|i,s|i[s]+=1;i}.select{|k,v|v>2}}

2
Mặc dù tôi luôn đánh giá cao sự thông minh của Unicode, nhưng nỗ lực bash của bạn dường như không thỏa mãn đặc điểm kỹ thuật của câu hỏi. "Viết chương trình xuất chính xác các ký tự Hello world!theo dòng mới"
FireFly

14
@FireFly: nó đáp ứng nó. iconv với mã hóa đích ascii//translitsẽ chuyển ngữ các ký tự unicode thành ascii cơ bản. Và tất nhiên echo sẽ thêm dòng mới, vì vậy cái này phù hợp với thông số kỹ thuật (nếu chúng ta không xem xét sự giống nhau của các octet)
SztupY

5
Trên hệ thống của tôi, tôi nhận được Hello World?thay vìHello World!
bến tàu

1
@SztupY oh, bạn nói đúng, xấu của tôi. Rất thông minh, tôi thích nó!
FireFly

1
Bạn sẽ nhận được bao nhiêu điểm thưởng nếu trình kiểm tra trùng lặp của bạn cũng tuân thủ thông số lặp lại? :-)
corsiKa

55

Bạn phải sử dụng các ngôn ngữ biểu cảm hơn.

Tiếng Trung,  6 4   3 ký tự

喂世!

Chạy google dịch trên sản phẩm này Hello world!

(cảm ơn @sreservoir và @Quincunx đã cập nhật)


33
+1 cho uốn cong quy tắc ... "Bằng ngôn ngữ bạn chọn ..."
WallyWest

4
Yêu nó. Nhưng chính xác thì đó là một chương trình như thế nào?
Pierre Arlaud

3
Trên thực tế, bạn có thể xem nó như một chương trình bằng ngôn ngữ google dịch - đối với tiếng Trung là ngôn ngữ phụ của nó :)
Tomas

2
+1. Ý kiến ​​hay. 世界 = Shì jiè = Thế giới. 你好 = nǐ hǎo = Xin chào. "Thế giới, xin chào!" dịch thành "Xin chào thế giới!". Nó có thể được đánh xuống một số chi tiết:你好世!
Justin

2
có thể được đánh golf xuống xa hơn với 喂世!chi phí của ... tốt, không có gì nữa thực sự được sử dụng.
muhmuhten

45

HQ9 +, 1 ký tự

H

giữ cho nó đơn giản :)


7
HQ9 + xuất ra dấu phẩy;)
Josh

8
Tôi vẫn sẽ giữ câu trả lời của bạn ... đó là một cuộc thi nổi tiếng sau tất cả, các quy tắc là dành cho gió!
Josh

26
@Josh Đây là một trong những sự kiện hiếm hoi mà tôi bỏ lỡ nút downvote trên các bình luận. Nếu chúng ta vứt bỏ các quy tắc thì không còn gì để biện minh cho cuộc thi cả.
Howard

5
@ Làm thế nào tôi cảm thấy bẩn. Tôi đánh giá cao nhận xét của bạn và Josh
Cruncher

22
Tất cả các print Hello Worldcâu hỏi thực sự là who can submit a HQ9+ answer fastercâu hỏi.
totymedli

44

C, 192 ký tự

#
#
/*$$@``*/ATION_[]={9.};main(BBCDDEEFFGGHJJKKLLMMPPQQRRSSUUVVWWXXYYZZabbdefgghhjjkkmpqqsstuuvvwxyyzz) {printf("He%clo \
world!%c\
",2^7&!8.&~1|~-1?4|5?0x6C:48:6<3>2>=3<++ATION_[0],'@'^79-5);}

Vì đây không phải là golf, tôi quyết định vui chơi và cố gắng sử dụng mỗi nhân vật chính xác hai lần (trong khi đưa càng ít càng tốt vào một nhận xét, vì điều đó thật nhàm chán). Tôi nhận ra rằng tôi đã không làm tốt lắm, vì mã của tôi cũng chứa rất nhiều mã "chết" nhàm chán (không phải theo nghĩa đen, nhưng theo nghĩa các ký tự giữ chỗ chỉ được sử dụng để đáp ứng đầy đủ yêu cầu). Dù sao, điều này thật khó khăn (nhưng thú vị) với giới hạn hai nhân vật, thật không may, tôi không thể nghĩ ra điều gì thú vị hơn. Nó đã cho tôi một ý tưởng cho một vấn đề mới mặc dù ...

(Cập nhật mỗi bình luận của @ ugoren.)


3
Sáng tạo ấn tượng. Tôi thích nó.
Josh

Dấu gạch chéo `\` kết thúc dòng ba và bốn làm cho nó tiếp tục dòng, không phải dòng mới. Và dòng bốn được chấm dứt bởi EOF, làm cho nó hợp pháp.
Josh

1
Tôi nghĩ rằng bạn có thể dễ dàng bỏ .qua bằng cách sử dụng nó cho các phân số. Ngoài ra, bạn có thể khai báo một mảng và sử dụng [].
ugoren

@ugoren gọi tốt về .; Tôi chỉ nghĩ về việc sử dụng nó để truy cập struct. <s> Đối với tờ khai mảng, tôi ra khỏi ,s do các printfcuộc gọi, và tôi cũng ra khỏi ;s, vì vậy tôi không chắc chắn làm thế nào tôi có thể tuyên bố một. </ s> Duh, tôi có thể thay thế ATION_. ..
FireFly

44

Lệnh Vim (18 tổ hợp phím)

iHeEsc3alEscio WorRightd!Enter

Không lặp lại bất kỳ tổ hợp phím nào quá hai lần.

kinda vi phạm "người dùng nhập vào" quy tắc kể từ khi nó vẫn còn người sử dụng mà cần phải nhập chuỗi đó, nhưng tôi nghĩ nếu bạn lưu nó như một macro hoặc một nnoremap trước nó sẽ đếm, vì bạn chỉ cần chạy nó mà không làm rõ ràng bất kỳ đầu vào để làm cho nó xảy ra.

Nó cũng yêu cầu nocompatiblephải được đặt, có thể được tính là sử dụng các tài nguyên bên ngoài, vì vậy tôi đã cung cấp một biến thể khác bên dưới:


Lệnh Vim (21 tổ hợp phím)

iHeEsc3alEscio WorCtrl+[$ad!Enter

Biến thể này không cần nocompatiblephải được đặt, mặc dù nó hoạt động xung quanh việc sử dụng Escba lần bằng cách sử dụng Ctrl+[tại chỗ của nó.


16
Nếu bạn đang nói về các nhân vật trong Right, EscEnter, họ không theo nghĩa đen những ký tự. Vim giao dịch trong tổ hợp phím, mà tôi cho là tương đương với các nhân vật cho mục đích của cuộc thi này (và quy tắc "không lặp lại nhiều hơn hai lần"). Tôi chỉ sử dụng itổ hợp phím hai lần và <Right>tổ hợp phím một lần. Đối với E, tôi không bao giờ sử dụng nó - nhưng tôi sử dụng <Esc>hai lần và <Enter>một lần.
Joe Z.

6
Bây giờ tôi thất vọng vì Emacs không có lệnh Mx hello-world ...
RemcoGerlich

4
Ngay cả nếu nó đã làm, đó là ba ls.
Joe Z.

1
Bạn nên lưu ý rằng bạn phải :set nocompatible.
jazzpi

1
Tuyệt vời, nhưng bản thân tôi thấy sử dụng Rightkhông vim-y.
gefei

29

Piet-- Không có nhân vật nào!

Xin chào thế giới ở Piet


7
Tôi sẽ coi các codel là "nhân vật".
Paŭlo Ebermann

3
@ PaŭloEbermann Bạn nghĩ gì về một codel độc đáo? EG có hình dạng khác nhau? màu sắc? kích cỡ? sự kết hợp nào đó?
Tiếp

1
@ValekHalfHeart định nghĩa của một codel duy nhất được đưa ra trong thông số kỹ thuật của ngôn ngữ : đó là một khối codel có thể được đơn giản hóa như một pixel một màu.
plannapus

@plannapus Trong trường hợp đó tôi không thử thách này về mặt kỹ thuật là có thể ở Piet. Tôi có thể đến với một cái gì đó sáng tạo mặc dù.
Tiếp

@ValekHalfHeart oh đó không phải là lời chỉ trích của câu trả lời này: tôi thích nó! Thử thách này dù sao cũng không phải là một con cá tuyết.
plannapus

26

Perl, 29 ký tự

Câu trả lời này bao gồm guốc đánh giá x!

say"07-8*d<#B+>!"^xRATEDkL0GZ

Perl, 23 ký tự

Ngắn hơn, nhưng không có giày khiêu dâm. :-( Cùng một ý tưởng cơ bản mặc dù ...

say'0@@lo World!'^"x%,"

Perl, 20 ký tự

Nhàm chán...

say"Hello Wor\x6Cd!"

7
Ừm .... kinky? +1 :)
Josh


19

Sclipting , 11 ký tự

丟낆녬닆묬긅덯댦롤긐뤊

Tôi thấy chương trình HelloWorld tuyệt đẹp này trong danh sách chương trình Hello World của esolang .


5
Whoa! Xin chúc mừng, bạn là người đầu tiên đăng bất cứ điều gì về bất kỳ esolang nào của tôi ngoài esolangs.org :) (hoặc ít nhất là lần đầu tiên tôi phát hiện ra)
Timwi

18

Scala: 34 29 ký tự

Tôi tự hào về bản thân mình vì điều này:

printf("He%c%co world!\n",108,108)

Đã có một thời gian thực sự khó khăn để vượt qua các dấu ngoặc kép, dấu ngoặc kép và dấu ngoặc kép. Sau đó, tôi phát hiện ra printfhàm Java cũ , nó sẽ vui vẻ chuyển đổi số thành chữ cái khi được %cchỉ định định dạng.

Cập nhật

MrWonderful đã làm một điều tuyệt vời bằng cách chỉ ra rằng một loạt các ký tự có thể được lưu bằng cách sử dụng 'l' thứ hai của tôi trong chuỗi!

printf("Hel%co world!\n",108)

4
@KCaloux, Vì bạn được phép tối đa 2 'l, nên printf ("Hel% co world \ n", 108) ở 28 thậm chí còn tốt hơn?
MrWonderful

@MrWonderful Tôi nghĩ bạn hoàn toàn chính xác! (Ngoài ra tôi chỉ nhận ra rằng tôi đã quên bao gồm '!')
KChaloux

Theo những gì tôi hiểu, đây không phải là một mục hợp lệ, mặc dù nó là một nỗ lực tốt. printfchứa một rnhư không world. Tương tự với chữ ocái được sử dụng nhiều lần. Điều này dựa trên cách giải thích của tôi về tuyên bố sau từ OP "Một ví dụ về chương trình python không hợp lệ (ký tự 'r' được sử dụng ba lần): print("Hel"+chr(108)+'o world!')"
javatarz

@JAnderton Tôi đã có một chương trình ruby ​​phân tích kịch bản của mình để đảm bảo không có nhân vật nào được bao gồm hơn hai lần. Đọc lại lần nữa. Có 2 rs, không phải 3. Một trong "printf" và một trong "thế giới". Lý do con trăn không hợp lệ là vì nó bao gồmchr
KChaloux

16

Python 3 [38 byte]

exec('import '+chr(95)*2+"h\x65llo__")

Tôi sẽ không coi import __hello__là một nguồn lực bên ngoài.


15

Perl: 34 ký tự

$_="He12o wor3d!
";s{\d}{l}g;print

Chạy mẫu:

bash-4.1# perl -e '$_="He12o wor3d!
> ";s{\d}{l}g;print'
Hello world!

(Không phải là vấn đề lớn. Được đăng chỉ để sử dụng ít nhất một lần trong đời s///với những dấu phân cách lạ mắt đó.)


15

PHP, 33 ký tự

Tôi chỉ thích bao nhiêu PHP là tha thứ và hiểu!

<?=Hel.str_rot13("yb jbe").'ld!';

Trước khi nó bị xóa (hoặc nếu nó vẫn ở đó, tôi hoàn toàn bị mù), tôi đã thấy một bình luận nói rằng "Không có brainf * ck ?: D". Chà, thật khó để viết một giải pháp trong BrainF * ck, như bạn đã biết. Nhưng tôi đã quản lý để mã này, chỉ cho lulz.

++++++++++[>++++>+++++>++++++>+++++++>++++++++++>+++++++++++>+++++++++<<<<<<<-]
>>>.+++.--.>++.>+.+++++++.<<<<++++++.>>>>>+++++.+.--.>+++++.<.---.+++++.<<<<-.+
+.<------.------.>>>>>+++++.<----------.<<<<--.>>>>++++++++.--------.+++.
<<<<++.+++++++.+++++.-------.>>>>+++++++.--------.<<<<------.++++++.>++++++++.

Nếu bạn không có trình thông dịch BF, đoạn mã trên chỉ in đoạn PHP: P


Tôi thậm chí không biết một mã như thế này là hợp lệ! Thẻ Php không bị đóng và chuỗi Helkhông được bao quanh bởi dấu ngoặc kép. Ngoài ra tôi chưa bao giờ nghe nói về str_rot13trước đây.
Aycan Yaşıt

1
@ AycanYaşıt không yêu cầu thẻ php đóng trên EOF và nếu bạn đặt một chuỗi không có dấu ngoặc kép thì nó giả sử đó là hằng số không được khai báo có cùng nội dung với tên của nó và đưa ra cảnh báo
Einacio

1
Bạn có thể tránh cảnh báo (và lưu cái đầu tiên .) bằng cách đặt Heltrước <?=.
Paŭlo Ebermann

4
@ PaŭloEbermannHel<?=str_rot13("yb jbe")?>ld!
MirroredFate

2
@ PaŭloEbermann Tôi sẽ nói rằng sử dụng nó giống như gian lận, vì nó không còn là PHP đơn thuần nữa.
Vereos

13

Fiddle HTML - 21 ký tự

Hel&#108;o World!<br>

Có bao gồm các dòng mới trailing?
Josh

Đừng ... bỏ lỡ yêu cầu đó! Tôi sẽ thêm một <br> trong đó.
Briguy37

7
@netinept: Nó yêu cầu một dòng mới, không phải là một \nvì vậy tôi muốn nói <br>đếm
Chris

1
Nhưng nhân vật rđược lặp lại trong giải pháp. Tôi đã giải thích sai các yêu cầu?
javatarz

2
"L" và "o" cũng vậy, nhưng mỗi ký tự có thể được sử dụng tối đa hai lần.
xem

12

Ruby: 27 ký tự

puts [:Hel,'o wor',"d!"]*?l

Chạy mẫu:

bash-4.1# ruby <<ENDOFSCRIPT
> puts [:Hel,'o wor',"d!"]*?l
> ENDOFSCRIPT
Hello world!

Ruby: 25 ký tự

(Dựa trên nhận xét của Vache.)

puts 'He'+?l*2+"o world!"

Ruby: 23 ký tự

(Bản sao câu trả lời Powershell của Danko Durbić .)

puts"He#{?l*2}o world!"

puts 'He'+'l'*2+'o world!'ngắn hơn một ký tự!
dee-xem

3
Nhưng có 6 “'”' s ...
manatwork

haha Tôi đã rất tập trung vào các ký tự chữ cái mà tôi không bao giờ nhận thấy điều đó. đừng bận tâm!
dee-xem

1
Xóa khoảng trống sau khi đặt và làm cho nó 23. -puts"He#{?l*2}o world!"
Zero Fiber

1
@SampritiPanda, pbao gồm các trích dẫn trong đầu ra. Tôi thích giữ đúng với định dạng đầu ra cần thiết. Nhưng bạn đã đúng, không gian là không cần thiết. Cảm ơn bạn.
thao tác

12

JavaScript, 66 ký tự

alert('Hel'+window.atob("\x62G8gd29ybGQhCg=="));//rH+in.\x689yQhC;

Lấy cảm hứng từ FireFly, mỗi ký tự được sử dụng bởi mã này được sử dụng chính xác hai lần.


Tôi nghĩ rằng bạn được phép sử dụng một số ký tự chỉ một lần và bạn có thể bỏ bình luận.
John Dvorak

2
@JanDvorak - tốt, chắc chắn rằng anh ta có thể đã làm theo cách đó - nhưng tôi nghĩ rằng giải pháp này xứng đáng là một sự ủng hộ cho sự tuyệt đối trong việc sử dụng mỗi và mỗi nhân vật chính xác hai lần. :-)
Bob Jarvis

6
+1, nhưng thật dễ dàng để sử dụng mỗi ký tự chính xác hai lần nếu bạn chỉ thêm vô nghĩa như một nhận xét.
Camilo Martin

11

C - 43 ký tự

main(){printf("Hel%co World!%c",'k'+1,10);}

Đầu ra

Hello World!

Số lượng nhân vật

' ' Count: 1    '!' Count: 1    '"' Count: 2    '%' Count: 2    ''' Count: 2
'(' Count: 2    ')' Count: 2    '+' Count: 1    ',' Count: 2    '0' Count: 1
'1' Count: 2    ';' Count: 1    'H' Count: 1    'W' Count: 1    'a' Count: 1
'c' Count: 2    'd' Count: 1    'e' Count: 1    'f' Count: 1    'i' Count: 2
'k' Count: 1    'l' Count: 2    'm' Count: 1    'n' Count: 2    'o' Count: 2
'p' Count: 1    'r' Count: 2    't' Count: 1    '{' Count: 1    '}' Count: 1

Bạn không cần mainvv?
FireFly

@FireFly tôi đoán vậy! Nó đã nói để viết một chương trình.
Kirk Backus

Đó là C nhưng không phải C ++. C ++ không có int ẩn (và bạn không thể phụ tùng người khác i).
Ben Voigt

@BenVoigt Okie dokie!
Kirk Backus

9

JavaScript [37 byte]

alert(atob("SGVsbG8g")+'wor\x6cd!\n')

Quá nguyên thủy phải không?


5
Dòng mới ở đâu?
Christopher Creutzig

@ChristopherCreutzig Xin lỗi, quên nó đi. Bây giờ nó được đặt ra.
VisioN

9

nginx.conf

return  200 "He&#x6clo wo&#x72ld!\n";

Trong hành động:

% curl -6 http://localhost/ | lynx -dump -stdin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    21  100    21    0     0  20958      0 --:--:-- --:--:-- --:--:-- 21000

   Hello world!

%

Có 4 khoảng trống trong giải pháp này ...
Josh

3
@Josh, thực sự, có 5. Nhưng bạn không thể nghĩ rằng hai trong số bốn cái đầu tiên là các tab, và cái cuối cùng là một không gian không thể phá vỡ? :-)
cnst

Nó ổn với tôi!
Josh

@Josh, thực sự, bây giờ chúng tôi đang sử dụng HTML, không cần thêm nữa set. Điều này chỉ có 3 khoảng trống bây giờ, bất kỳ một trong số đó có thể là một tab!
cnst

Hoàn thành rất tốt.
Josh

9

Lệnh Emacs (15 tổ hợp phím)

He<Ctrl-3>l<Left>o wor<End>d!<Enter>

Nếu câu trả lời vim đó là hợp pháp thì điều này cũng phải vậy :)

Đùa qua một bên, macro nó có thể trở nên quá :)

Vô lý hơn sang một bên, tôi có thể có thể ép thêm một số, nhưng điều này dường như là đủ tốt cho thời điểm hiện tại (vì nó đánh bại vim).

PS, xin vui lòng bỏ qua tất cả những điều vô nghĩa của tôi (tôi (hiếm khi, nhưng) sử dụng vim quá!).


2
Tôi vẫn nghĩ vim> emacs.
Joe Z.

6

Befunge 98

a"!dlrow ol":'e'Hck,@

Đây là một phiên bản mà mỗi nhân vật xuất hiện hai lần.

bka!e:dw"H@!dlrow  ol":'e'Hbk,a,@

Để lại một đống rác trên chồng.

Như một phần thưởng, mỗi nhân vật đều có một cái gì đó được thực hiện bằng IP.


6

Malbolge

(=<`#9]~6ZY32Vw/.R,+Op(L,+k#Gh&}Cdz@aw=;zyKw%ut4Uqp0/mlejihtfrHcbaC2^W\>Z,XW)UTSL53\HGFjW

Thật không may, điều này dường như in Hello, world.thay vì Hello world!\n:( Hãy thử trực tuyến! Ấn tượng, nhưng không hợp lệ.
DLosc

5

Thật ra tôi không thích lừa dối: P

Con trăn

print("!dlrow os%eH"[::-1]%('l'*2))

2
Bạn nên xác định rằng đó là cho python2. Trong python3, bạn nhận được chuỗi đảo ngược là đầu ra và sau đó a TypeError.
Bakuriu

1
Để sử dụng trong đối số Py3K của bản in phải được đặt trong ngoặc đơn. print("!dlrow os%eH"[::-1]%('l'*2))hoạt động trong cả hai phiên bản (Python2 và Py3K).
AMK

4

GolfScript

'He

o world!'n/"l"*

Thay thế hai dòng mới (may mắn thay là dòng thứ ba, cần thiết cho sự thay thế, được cung cấp bởi tích hợp sẵn n), sử dụng cả hai loại chuỗi ký tự để tránh các bản sao của dấu ngoặc kép. Vì llà ký tự duy nhất xuất hiện nhiều hơn hai lần trong chuỗi gốc, nên nó không quá khó.


Bạn đã quên "!".
Howard

@Howard, đã bỏ lỡ nó. Úi.
Peter Taylor

Chữ o cũng được lặp lại
Adam Speight

1
@AdamSpeight: Chỉ có hai lần bức thư o. Các quy tắc nói rằng nó không được phép có một nhân vật nhiều hơn hai lần .
Chương trìnhFOX

4

Hừm.

Trong C, với các quy tắc này, chúng ta chỉ có thể có một #define(vì in) và nhiều nhất là hai hàm gọi định nghĩa OR ( ()).

Tôi đoán có khá nhiều cách duy nhất để làm điều đó (mặc dù tôi có thể sai):

main(){puts("Hello w\x6fr\154d!");}

Bạn vẫn cần xuất ra dòng mới. Thực hiện thử thách này ở C rất khó ...
Josh

1
@Josh Mình chỉ phải dùng puts()thay printf().
Oberon

2
Nhưng có gì sai otrong world?
VisioN

@VisioN Trong một bản nháp cũ của cùng một mã (trước khi tôi nhận ra việc viết một chương trình như vậy thực sự khó đến mức nào) Tôi đã sử dụng một 'o' khác ở nơi khác. Nhưng đây không phải là môn đánh gôn , vì vậy tôi đoán nó không phải sửa.
Oberon

4
Trên thực tế, tôi không chắc tại sao mọi câu trả lời đều hiển thị số lượng ký tự.
Oberon

4

BASH

printf 'Hel\x6co world!\n'

cred @manatwork

echo $'Hel\x6c\x6f world!'

Cái đầu tiên có 3 người ăn và 3 người khác.
thao tác

@manatwork: Gag; thanx;)
Runium

Trong Bash bạn có thể bỏ qua -ebằng cách sử dụng $'…'cú pháp đặc biệt : echo $'Hel\x6c\x6f world!'.
thao tác

4

C - 46 ký tự

main(){printf("He%clo wor%cd!\x0d",'l',108);}

In ra:

Chào thế giới!


Nếu bạn đang nhắm đến golf, main(){printf("He%clo world!%c",108,10);}nên làm việc và tiết kiệm cho bạn một vài ký tự.
FireFly

@FireFly bạn nói đúng, bạn sẽ lưu cho tôi 3 ký tự. Đề nghị của bạn hoạt động hoàn hảo, quá.
Phillip Kinkade

4

Fugue

Từ wiki esolang:

nhập mô tả hình ảnh ở đây

Và bạn có thể nghe mã nguồn .


11
Tôi muốn nói điều này không hợp lệ. Tôi có thể thấy hơn 4 c giữa trong tay phải.
Justin

4
Chưa kể chuỗi bốn G liên tiếp trong biện pháp thứ 9.
Joe Z.

Bạn đã viết điều này, hoặc chỉ hiển thị nó? Cho rằng bạn liên kết đến MIDI của kho lưu trữ esolang.
FireFly

4
-1 cho đạo văn. Đây là từ wiki esolang . Bạn không trích dẫn nó. Chỉnh sửa: hoàn nguyên, bây giờ wiki esolang được trích dẫn.
Justin

-1 để sử dụng cùng một ghi chú nhiều hơn 2 lần.
Erik the Outgolfer

4

PHP

32 ký tự

Lưu ý cách tôi không sử dụng một ký tự quá hai lần, vì l! = L

He<?=strtolower("LLO WOR");?>ld!

Cũng lưu ý rằng, mặc dù Stack Overflow xóa nó trong biểu diễn, vẫn có một dòng ngắt sau !.


1
Bạn đang sử dụng ba khoảng trắng, nhưng tôi đoán điều này có thể được sửa chữa loại bỏ những khoảng trống gần các thẻ PHP! : P
Vereos

1
Điều đó thật nhanh, mặc dù tôi đã nhận ra trước khi đọc bình luận của bạn (thực sự từ một câu trả lời khác)
Francisco Presencia

Không phải đầu ra "H" là chữ hoa sao?
David Cary

Hoàn toàn đúng, cũng bỏ lỡ điều đó):
Francisco Presencia

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.