덕트 테이프는 어머니의 날을 고칠 수 있습니다


54

덕트 테이프를 기반으로 매우 유사한 규칙으로 너무 넓은 질문을 해결할 수 있습니다 . 이번에 만 목표는 매우 구체적입니다.

도전

당신의 임무는 hello mom한 줄의 코드를 작성하지 않고도 표시하는 프로그램을 만드는 것입니다 .

StackOverflow의 질문과 답변 모두에서 이미 작성된 코드 만 사용할 수 있습니다. 덕트 테이프 만 있으면 가능한 한 최선을 다할 수 있습니다. 물론 권리가 종료되지 않도록 적절한 속성을 제공하는 것이 매우 중요합니다.


규칙

  1. 답변에 사용한 질문 / 답변에 대한 링크를 포함해야합니다.
  2. 당신은 하지 않을 수 있습니다 다음과 같은 예외를 제외하고 찾을 코드를 수정 :

    에이. 변수, 함수 및 메소드의 이름을 바꿀 수 있습니다. (이것은 당신이 방법을 변경할 수 있습니다 의미하지 않는다 호출을 변경하여, 말 scanner.nextInt()scanner.nextLine()하고 메소드 이름을 변경하고 있다는 주장. 변화는 정의 또는 동일한 개체를 참조에 있어야합니다.). 변수, 함수 또는 메소드의 이름이 다시 바뀌면 솔루션이 계속 작동하므로 hello mom변수 이름 으로 포함 할 코드의 이름을 바꾸면 계산되지 않습니다.

    비. 들여 쓰기를 적절히 조정할 수 있습니다.

    씨. 코드 스 니펫이 작동하기 위해 적절한 모듈이로드되었다고 가정 할 수 있습니다. (예 : importJava 및 Python에 using대한 명령문, C # 및 C ++에 대한 명령문 및 모든 언어에서 동등한 것) 코드 스 니펫에 imports가 포함 된 경우 코드 상단으로 이동할 수 있습니다.

    디. 언어에서 코드가 어떤 종류의 메소드 본문에 있어야 실행되는 경우 (예 : public static void main(String[] args)Java, static int Main(string[] args)C # 등) 코드를 적절한 메소드로 랩핑 할 수 있습니다. 그러나 그 주요 방법 의 내용 은 수정되지 않은 채로 있어야합니다.

  3. 수행 된 모든 변수 / 방법 / 함수 / 클래스 이름 변경 목록을 제공해야합니다.

  4. 스 니펫 스 니펫을 사용할 수 없습니다 (게시물에서 코드 블록을 가져 가면 모든 것을 취함)
  5. 사용하는 언어에 친숙하지 않은 사람들을 위해 코드의 기능에 대한 간단한 설명을 제공하십시오.
  6. 이 챌린지가 시작되기 전에 게시 된 스 니펫을 사용해야합니다.
  7. 인기 경연 대회, 가장 많은 찬사를 얻습니다!

마감 시간

어머니의 말이 끝날 무렵 (UTC-11 시간대 자정)에 가장 많은 투표를 한 제출을 수락하지만 나중에 제출하면 여전히 투표를받을 수 있습니다.


1
@iamkrillin 모든 hello world 예제를 hello mom 코드로 전송하는 것이 매우 간단합니다. 또한 변수 이름 바꾸기에 대한 규칙의 마지막 줄에 유의하십시오.
Dennis Jaheruddin

23
7. 이 챌린지 이전에 게시 된 스 니펫을 사용해야합니다 . (코드 코드로 문자열 관련 질문에 답할 수 있습니다)
Geobits

1
다른 스 니펫 안에 코드를 삽입 할 수 있습니까?
durron597

3
@Gareth 아시다시피, 다른 나라도 있습니다.
Martin Ender

1
@JeffGohlke하거나 m또는 o리터럴있다. 또는 코드 포인트를 문자 및 스 니펫으로 변환하여 올바른 코드 포인트를 계산할 수있는 스 니펫. 대한 제한은 정확히 여기 창의성을 장려 것. 이것이 내가 당신의 도전에 대해 언급 한 것이며, 범위를 제한하도록 제안한 이유 (그리고 그 이유는 그것이 폐쇄 된 이유)입니다.
마틴 엔더

답변:


60

Brainfuck

어머나 왜 내가 이걸 스스로 했니?

실제로 일부 BF 기호를 코드 스 니펫으로 찾을 수 있습니다. 흥미로운 점은 각각 다른 BF 명령어 블록을 나타내는 다른 사람들의 코드 비트를 서로 연결하는 것이 었습니다. 불행하게도 기본적으로 더 타의 추종을 불허 없습니다 []거기 문자, 그래서 나는 사람들을 위해 약간의 속임수했고, 나는 거기에 흑자의 무리를했다 펑키 하스켈 조각에서 주행 거리의 엄청 많이 얻을 수 있었다. 아마도 다른 사람들이있을 것입니다. 그 외에도 프랑켄슈타인 코드가 있습니다.

byte x = 1;
byte y = 2;
byte z = x + y;   // ERROR: Cannot implicitly convert type 'int' to 'byte'
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
[
int a = (b > 10) ? some_value                 
                 : another_value;
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
int a = (b > 10) ? c : d;
byte x = 1;
byte y = 2;
byte z = x + y;   // ERROR: Cannot implicitly convert type 'int' to 'byte'
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
?"<<-"
]
exec >{space}> (command)
byte z = (int) x + (int) y;
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
find . -type f -print -exec cat {} \;
git reset .
byte x = 1;
byte y = 2;
byte z = x + y;   // ERROR: Cannot implicitly convert type 'int' to 'byte'
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
System.out.print("B");
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
fatal: Failed to resolve 'HEAD' as a valid ref.
while read p; do 
echo $p
done < $filename
static HMODULE hMod = NULL;
  static bool once = false;
  if (!once++)
    hMod = LoadLibrary("xxx");
 if (originalValue.length > size) {
static HMODULE hMod = NULL;
  static bool once = true;
  if (once--)
    hMod = LoadLibrary("xxx");
$ cd /usr/local/wherever
$ grep timmy accounts.txt
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub}
ls -ld $(find .)
git commit --amend -m "New commit message"
wget -q -O - $line 
git rebase --interactive $parent_of_flawed_commit
find . -type f -user 'user1' -maxdepth 1

어머니는 영국인이기 때문에 결과는 아주 간단합니다 hello mum

서지:

https://stackoverflow.com/questions/17845014/what-does-the-regex-mean

[그리고 ]사과와 함께

https://stackoverflow.com/a/21460161/2581168

find . -type f -print -exec cat {} \;

https://stackoverflow.com/questions/6161328/what-exactly-does-this-do-exec-command

exec >{space}> (command)

https://stackoverflow.com/questions/20130538/what-is-in-haskell

addop = do {symb "+"; return Op Add}  +++ do {symb "-"; return Op Sub} 

https://stackoverflow.com/questions/21947452/why-is-printing-b-dramatically-slower-than-printing

System.out.print("B");

https://stackoverflow.com/questions/941584/byte-byte-int-why

byte x = 1;
byte y = 2;
byte z = x + y;   // ERROR: Cannot implicitly convert type 'int' to 'byte'

https://stackoverflow.com/a/160295/2581168

int a = (b > 10) ? c : d;

int a = (b > 10) ? some_value                 
                 : another_value;

https://stackoverflow.com/questions/13273002/what-does-mean-in-r

?"<<-"

https://stackoverflow.com/questions/3450420/bool-operator-and

static HMODULE hMod = NULL;
static bool once = false;
if (!once++)
    hMod = LoadLibrary("xxx");

static HMODULE hMod = NULL;
static bool once = false;
if (!once--)
    hMod = LoadLibrary("xxx");

https://stackoverflow.com/questions/22776085/in-which-case-will-size-originalvalue-length-in-string-constructor-string

if (originalValue.length > size) {

https://stackoverflow.com/questions/3797795/does-mean-stdout-in-bash

wget -q -O - $line 

https://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git/179147#179147

git commit --amend -m "New commit message"

git rebase --interactive $parent_of_flawed_commit

https://stackoverflow.com/questions/14763413/grep-ls-output-across-tabs/14763499#14763499

find . -type f -user 'user1' -maxdepth 1

https://stackoverflow.com/questions/945288/saving-current-directory-to-bash-history

$ cd /usr/local/wherever
$ grep timmy accounts.txt

https://stackoverflow.com/questions/348170/undo-git-add-before-commit/682343#682343

fatal: Failed to resolve 'HEAD' as a valid ref.

오류 메시지는 코드가 아닙니다. 그 중 하나는 해결하기 쉽게해야하지만
durron597

6
또한 코드 스 니펫이 답변의 언어로되어 있어야하는지에 대한 판결이있을 것입니다. 그러나 잘 상관없이, 일
durron597

@ durron597은 사실이지만 오류 메시지가 표시되는 것과 같습니다. 있어 git add .영업 이익은 그것으로 문제가있는 경우 같은 게시물에.
ymbirtt

일치하지 않는 일부 J 답변이있을 수 []있지만 종종 .포함되어 있습니다. stackoverflow.com/questions/21898628/…
ɐɔıʇǝɥʇuʎs

1
대단해. +1000
asteri

33

자바

다음으로 시작하십시오.

https://stackoverflow.com/a/19509316/1768232

String myStr = "hello";
String myStr1 = "hello";

https://stackoverflow.com/a/8341513/1768232

String[] history = new String[] { "hey", "you", "Mom" };

https://stackoverflow.com/a/23300004/1768232

String editednames = titleCase(name);

https://stackoverflow.com/a/20698093/1768232

myString = myString.toLowerCase();

https://stackoverflow.com/a/19393222/1768232

System.out.println(Name + " " + Income);

https://stackoverflow.com/a/1181979/1768232

public static <T> T last(T[] array) {
   return array[array.length - 1];
}

규칙 # 2d에서 필요 class하고 public static void main(String[] args){ }허용 된대로 (정적 메소드가 아닌) 변수를 추가하고 변수 / 메소드 이름을 정확히 6 개 중 6 개로 변경하십시오.

  • 세 번째 스 니펫에서 변경 name->history
  • 세 번째 스 니펫에서 변경 editednames->myString
  • 다섯 번째 스 니펫에서 변경 Name->myStr
  • 다섯 번째 스 니펫에서 변경 Income->myString
  • 여섯 번째 스 니펫에서 변경 last->titleCase

결과 프로그램 :

public class DuctTape {
  public static void main(String[] args) {
    // https://stackoverflow.com/a/19509316/1768232
    String myStr = "hello";
    String myStr1 = "hello";

    // https://stackoverflow.com/a/8341513/1768232
    String[] history = new String[] { "hey", "you", "Mom" };

    // https://stackoverflow.com/a/23300004/1768232
    String myString = titleCase(history);

    // https://stackoverflow.com/a/20698093/1768232
    myString = myString.toLowerCase();

    // https://stackoverflow.com/a/19393222/1768232
    System.out.println(myStr + " " + myString);
  }

  // https://stackoverflow.com/a/1181979/1768232
  public static <T> T titleCase(T[] array) {
    return array[array.length - 1];
  }
}

산출:

hello mom

2
이것은 규칙을 어기는 것으로 보인다. 2a는 titleCase ()를 last ()로 변경하여 수행 한 메소드 호출로 호출되는 메소드를 변경할 수 없음을 나타냅니다.
Billy Mailman

1
@BillyMailman 해석이 정확하면 q / a가 해당 메소드에 대한 호출을 제공하지 않는 한 메소드 정의를 사용할 수 없습니다. OP의 판결이있을 경우 수정을 시도합니다
durron597

2
실제로 @BillyMailman이 옳습니다. 그러나이 작업을 수행하는 방법은 이름을 바꾸는 것입니다 방법titleCase()보다는 외부 참조 이름을 변경. 그것이 당신이 함께 묶는 방법입니다. 규칙 2a는 방법 / 함수 이름 변경이 합법적임을 명시하고 있습니다.
asteri

1
@JeffGohlke 수정
durron597

28

씨#

변수 이름 만 바꾸고 코드에 문자 그대로 "엄마"가없는 (정확한) 결과를 얻는 미친, 원형 교차로 및 복잡한 방법.

"포스트에서 코드 블록을 가져 가면 모든 것을 가져 간다"라는 규칙을 말 그대로 도움이되지는 않았지만 더 재미있게 만들었습니다.

using System;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;

public class Program
{
    void Main()
    {
        // Step 1
        var n = 3;
        var helloAndGoodbye = "12345678900"
                    .Select((c, i) => new { letter = c, group = i / n })
                    .GroupBy(l => l.group, l => l.letter)
                    .Select(g => string.Join("", g))
                    .ToList();

        // Step 2
        string place = "world";
        string greet = String.Format("Hello {0}!", place); 

        // Step 3
        byte[] b1 = System.Text.Encoding.UTF8.GetBytes (greet);
        byte[] b2 = System.Text.Encoding.ASCII.GetBytes (greet);

        // Step 4
        string encryptionKey = "test";
        var md5 = MD5.Create();
        var keyBytes = Encoding.UTF8.GetBytes(encryptionKey);
        byte[] encryptionKeyBytes = md5.ComputeHash(keyBytes);

        // Step 5
        string strName = md5.GetType().Name;
        if(strName == "Person")
        {
            //My Code
        }

        // Step 6
        string HashAlgorithm = new string(strName.Take(n).ToArray());

        // Step 7
        int previousYear = DateTime.Now.AddYears(-1).Year;

        // Step 8
        string myString = previousYear.ToString();

        // Step 9
        string totallyRandomString = new string(myString.Take(n).ToArray());

        // Step 10
        int myInt = System.Convert.ToInt32(totallyRandomString);

        // Step 11
        int x = myInt << 1 + 1;

        // Step 12
        PasswordDeriveBytes DerivedPassword = 
                    new PasswordDeriveBytes(place, b1, HashAlgorithm, x);
        byte[] KeyBytes = DerivedPassword.GetBytes(32);

        // Step 13
        string base64 = Convert.ToBase64String(KeyBytes);
        byte[] bytes = Convert.FromBase64String(base64);

        // Step 14
        var split = base64.Split('/');
        var last = split[split.Length -1];
        var prev = split[split.Length -2];

        // Step 15
        string truncatedToNLength = new string(last.Take(n).ToArray());

        // Step 16
        Regex rgx = new Regex("[^a-zA-Z0-9 -]");
        greet = rgx.Replace(greet, "");

        // Step 17
        var newString = greet.Replace(place.ToString(), truncatedToNLength);

        // Step 18
        var searchStr = newString.ToLower();
            searchStr = searchStr.Trim();

        // Step 19
        Console.WriteLine(searchStr); 
    }
}

.NET 바이올린

http://dotnetfiddle.net/PbjhPn

http://dotnetfiddle.net/bg20wb (코드 블록의 중복 행 제거)

간단한 설명

기본적으로 "Hello world!" 간단한 문자열 형식에서. 이제 우리는 그것을 대체하기 위해 "엄마"가 필요합니다. 이를 위해 MD5를 "world"를 암호로 사용하고 "Hello world!"를 사용하여 PBKDF1을 804 회 반복 실행 한 Base64 인코딩 결과를 사용합니다. 소금으로. 그러면 문자열 "ciSf5cCls1l / MoM ..."이 생성됩니다. "MoM"을 추출하여 "world"의 대체물로 사용합니다. 그런 다음 줄을 정리합니다.

우리는 어떻게 804에 도착합니까? 전년도는 세 문자 (= "201")로 잘린 다음 4를 곱했습니다.

긴 설명 및 속성

1 : 우리는 약간의 규칙을 따르는 과잉부터 시작합니다. 정수 3은이 프로그램에서 매우 중요한 상수입니다. 여기에 정수를 할당합니다 n. 소스의 전체 블록을 포함해야합니다. 중복 될 수는 있지만 split나중에 필요할 변수의 이름을 바꾸는 한 제대로 컴파일 됩니다. 출처

대체 된 변수 이름 :

split              > helloAndGoodbye

2 : 시작 문자열을 설정합니다 ( "Hello world!"). 출처

이것은 우리 엄마에게 매우 개인적인 메시지입니다. 따라서 이러한 NSA 유형을 처리하려면 약간의 암호화가 필요합니다. 이를 위해 몇 가지 매개 변수가 필요합니다.

3 :greet 솔트를 위해 ( "Hello world!")를 바이트 배열로 변환 합니다. 출처

myString           > greet

4 : 암호화를 사용하고 있지만 실제로 MD5 클래스를 인스턴스화 할 필요는 없습니다. 그러나 우리는 매개 변수 중 하나에 추가로 사용할 문자열 "MD5"가 필요합니다. 사용 가능한 코드에서는 찾기가 쉽지 않습니다. 다시 한 번, "단축키"를 사용하겠습니다. 다시 한 번, 전체 코드 블록은 규칙에 따라 포함되지만 두 번째 줄만 필요합니다. 출처

5 : 이제 md5변수 유형의 이름 ( MD5CryptoServiceProvider)이 필요합니다. 는 if또 다른 중복이다. 출처

entity             > md5

6 : 타입 이름의 첫 3 자 (오, 상수가 있습니다!)를 얻으십시오. 출처

s                  > strName
truncatedToNLength > HashAlgorithm

7 : 코드 트롤링 : 사용 DateTime.Now한다는 것은 2019 년까지만 작동한다는 것을 의미합니다. 조금 더 미래를 보장하기 위해 우리는 전년도를 사용합니다. 그런 다음 2020까지 작동합니다 ;-) 소스

8 : 우리 previousYear를 문자열로 변환 합니다. 출처

myInt              > previousYear

9 : 이봐, 코드 재사용! ;-) 연도의 처음 3 개 (상수!)를 얻으십시오. 출처

s                  > myString
truncatedToNLength > totallyRandomString

10 : Aaaaaaaand ... 결과를 다시 정수로 변환합니다. 출처

myString           > totallyRandomString

11 : Eric Lippert는 모든 답변을 향상시킵니다. 로터리 방식으로 4를 곱하십시오. 출처

y                  > myInt

12 : 보내기 place(암호)와 greet와 MD5 사용 PBKDF1을 통해 (소금) x(지금 201*4 = 804반복). 출처

Password           > place
SaltValueBytes     > b1
PasswordIterations > x

13 : Jon Skeet도 모든 답변을 개선합니다. 파생 된 암호를 기본 64로 변환합니다 bytes. 배열을 버립니다 . 출처

bytes (first occurrence) > KeyBytes

14 : 정말 미친 무작위 상황! 우리는 지금base64 그것에 "MoM"을 가지고 있습니다. 편리하게도 "MoM"직전은 단일 '/'입니다. 그래서 구분 기호로 그 문자로 문자열을 분할 : 소스

filePath          > base64

15 : 야, 우리가 가장 좋아하는 코드 재사용 테이프! 의 첫 3 개 (일정!)를 받으십시오.last . 출처

s                 > last

16 : "!"를 제거하십시오. 출처

str               > greet

17 : MoM은 우리의 세계입니다. 따라서 문자열에이를 반영하십시오 ( "world"를 "MoM"으로 대체). 출처

someTestString   > greet
someID           > place
sessionID        > truncatedToNLength

18 : 마지막으로 소문자로 변환하십시오. 적절한 측정을 위해 다듬기 (또는 덕트 테이프 블록의 일부일 수 있음). 출처

wordToSearchReplacemntsFor > newString

19 : 콘솔로 출력. 출처

_surface         > searchStr

"보너스 소재"/ 코멘트

  • 처음에는 내장 된 암호화 해시 (각각 HMAC와 결합)와 입력 ( "world", "Hello world!", "Hello world", "hello world"등)의 모든 조합을 시도하여 기적적으로 무언가를 줄 것인지 확인했습니다. 유용 할 PDKDB1 (또는 2)의 여러 반복을 찾기위한 쉬운 경로를 취하기 전에 "엄마"를 유도하는 유용한 출력.

  • 201 * 4 = 804 반복에 대한 입력으로 연도를 사용하는 것에 만족하지 않았습니다. 처음에는 HttpStatusCode.Created(201)이 입력으로 사용할 유용한 코드를 찾으려고 노력했습니다. "우리는 'Hello world!'를 만들었습니다. 문자열을 사용하는 것이 좋습니다. 여기에서 '생성 된'상태 코드를 사용하는 것이 좋습니다. " 불행히도, 나는HttpStatusCode 대부분의 ASP.NET WebAPI 프레임 워크에 의존하지 않는 열거 형 을 찾지 못했습니다.

  • 코드의 시작 ( "Hello world!"문자열 형식)은 처음 추가 한 후에는 다시 보지 않았습니다. 만약 그렇다면, 할당이 place소스에서 실제로 다른 블록에 있다는 것을 깨달았을 것입니다. 따라서 place"world"를 사용하지 않고 나중에 파생 된 "mom"을 단순히 할당 하고 나중에 교체 할 수있었습니다. 아 잘


5
"엄마는 우리의 세상"에 +1하고 "리퍼와 스키트는 모든 대답을 더 좋게 만듭니다".
Floris

"좋은 측정을위한 손질 ..." 은 저에게 좋은 멍청이를주었습니다.
Nit

24

베 펀지 98

내 코드 :

var abc = function(){};
display: table-*
display: table-*
display: table-*
display: table-*
display: table-*
display: table-*
display: table-*
display: table-*
+
+
+
+
+
+
+
, new {area = ""}
byte z = x + y;
byte z = x + y;
byte z = x + y;
byte z = x + y;
byte z = x + y;
byte z = x + y;
byte z = x + y;
byte z = x + y;
display: table-*
+
+
+
+
+
+
+
+
, new {area = ""}
"1,23,4"
  String[] temp = data.split("\\s+\\^,?\"'\\|+");
List<Set<Integer>> foo;
"1,23,4"
+
: base(name)
: base(name)
, new {area = ""}
, new {area = ""}
10001.10010110011
10001.10010110011
10001.10010110011
+
+
+
, new {area = ""}
"1,23,4"
  String[] temp = data.split("\\s+\\^,?\"'\\|+");
"1,23,4"
, new {area = ""}
"1,23,4"
[5326, 4223, 1204]
Runnable prs = new Runnable() {
    public void run() {
        Document doc = null;
        try {
            doc = Jsoup.connect("http://play.radio.com/").get();

        } catch (IOException e) {

            e.printStackTrace();
        }
        parser.postDelayed(prs, 10000);
    }
};
"1,23,4"
$selector.append("somestuff");
$selector.append("somestuff");
-new Date().getTimezoneOffset()/60;
: base(name)
10001.10010110011
10001.10010110011
10001.10010110011
+
+
+
 [0000] push        ebp
 [0001] mov         ebp,esp
 [0003] push        edi
 [0004] push        esi
 [0005] push        ebx
 [0006] sub         esp,1Ch
 [0009] xor         eax,eax
 [000b] mov         dword ptr [ebp-20h],eax
 [000e] mov         dword ptr [ebp-1Ch],eax
 [0011] mov         dword ptr [ebp-18h],eax
 [0014] mov         dword ptr [ebp-14h],eax
 [0017] xor         eax,eax
 [0019] mov         dword ptr [ebp-18h],eax
*[001c] mov         esi,1
 [0021] xor         edi,edi
 [0023] mov         dword ptr [ebp-28h],1
 [002a] mov         dword ptr [ebp-24h],0
 [0031] inc         ecx
 [0032] mov         ebx,2
 [0037] cmp         ecx,2
 [003a] jle         00000024
 [003c] mov         eax,esi
 [003e] mov         edx,edi
 [0040] mov         esi,dword ptr [ebp-28h]
 [0043] mov         edi,dword ptr [ebp-24h]
 [0046] add         eax,dword ptr [ebp-28h]
 [0049] adc         edx,dword ptr [ebp-24h]
 [004c] mov         dword ptr [ebp-28h],eax
 [004f] mov         dword ptr [ebp-24h],edx
 [0052] inc         ebx
 [0053] cmp         ebx,ecx
 [0055] jl          FFFFFFE7
 [0057] jmp         00000007
 [0059] call        64571ACB
 [005e] mov         eax,dword ptr [ebp-28h]
 [0061] mov         edx,dword ptr [ebp-24h]
 [0064] lea         esp,[ebp-0Ch]
 [0067] pop         ebx
 [0068] pop         esi
 [0069] pop         edi
 [006a] pop         ebp
 [006b] ret
10001.10010110011
+
: base(name)
, new {area = ""}
"1,23,4"
List<Set<Integer>> foo;

"1,23,4"
+
10001.10010110011
10001.10010110011
10001.10010110011
+
+
+
, new {area = ""}
, new {area = ""}
def logme(func):
    def wrapped(*args):
        for arg in args: print str(arg)
        func(*args)
    return wrapped

@logme
def my_func(*args):
    res = 1
    for arg in args :
        print "Multiplying %s by %s" % (arg, res)
        res*=arg
    print res
    return res

v첫 번째 줄의 첫 번째 줄에서 IP를 아래쪽으로 보내 므로 작동합니다 . 그래서 우리는 기본적으로이 프로그램을 실행하고 있습니다 :

dddddddd+++++++,bbbbbbbbd++++++++," L"+::,,111+++," ","[R           }"$$-:111+++             *                            1+:,"L "+111+++,,d     @

이것은 무엇입니까?

  • dddddddd+++++++,밀고 104인쇄
  • bbbbbbbbd++++++++,밀고 101인쇄
  • " L"+,32누르고 ascii 값 L을 더한 다음 더하고 두 번 복제하고 두 번 인쇄합니다.
  • 복제 된 사람에게 111+++, 3을 더하고 인쇄
  • " ",공백을 인쇄합니다. "[R }"$$-:111+++a를 9누르고 복제 한 다음 최상위 값에 3을 더합니다.
  • * 상위 2 개의 값을 곱합니다
  • 1+:, 그 수를 증가시키고, 복제하고 인쇄합니다
  • "L "+111+++,인쇄합니다 o. ,은 인쇄 m전부터 및 d @밀어 13(아무것도 안하는) 프로그램을 종료합니다.

4
그리고 그렇습니다. 실제로 이것을 실행했고 출력했습니다hello mom
Justin

14

자바

import java.util.*;

public class HelloMom {

     public static void main(String[] args) {
         Hashtable<String, String> ht = new Hashtable<String, String>();

        ht.put("Answer", "42");
        ht.put("Hello", "World");    // First value association for "Hello" key.
        ht.put("Hello", "Mom");      // Second value association for "Hello" key.

        for (Map.Entry<String, String> e : ht.entrySet()) {
          System.out.println(e);
        }
    }
}

산출

Answer=42
Hello=Mom

거기에 성가신 = 있지만, 이것이 내가 할 수있는 최선입니다

https://stackoverflow.com/a/1050075/573421


놀라운 발견!
Floris

1
실제로 나는 도전을 시작하기 전에 약간을 검색했으며 한 게시물에서 이와 같은 완벽한 솔루션을 찾을 것으로 기대하지 않았습니다. 어쨌든 하나 찾았습니다!
Dennis Jaheruddin

11

이 코드의 대부분은 BLUEPIXY 에 의해 게시 된 회문 [sic] 인 첫 단어의 시작 부분찾는 대답에서 비롯된 단어 mom입니다. 21 행과 22 행 hello에서 사용자 142019 (행운 적으로 세미콜론을 추가 한 사용자 )의 printf (“%%% s”,“hello”) 에 대한 응답 끝에 코드 스 니펫 과 그 사이의 공백이 인쇄됩니다. 단어에 대한 답변에서 오는 C의 패딩 공간을 인쇄하는 방법 에 의해 M Oehm .

산출:

%hello        mom

불행히도 여분의 공백이나 백분율 문자를 제거 할 수 없었습니다.

소스 코드:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int isPalindrome(const char *str){
    const char *front, *back;
    front=str;
    back =str + strlen(str)-1;
    for(;front<back;++front,--back){
        while(!isalpha(*front))++front;//isalnum?
        while(!isalpha(*back))--back;
        if(front > back || tolower(*front)!=tolower(*back))
            return 0;
    }
    return 1;
}

int main(){
    const char *data="Hello mom and dad, how is it going?";
    char *p, *src;
    printf("%%%s", "hello");
    printf("        ");
    p=src=strdup(data);
    for(;NULL!=(p=strtok(p, " \t\n,.!?"));p=NULL){
        if(isPalindrome(p)){
            printf("%s\n", p);
            break;
        }
    }
    free(src);
    return 0;
}

7

자바

import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.Random;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author LH
 */
public class Kopierpaste
{

    //https://stackoverflow.com/questions/15182496/why-does-this-code-using-random-strings-print-hello-world
    //randomizer code for the first String
    public static String randomString(int i)
    {
        Random ran = new Random(i);
        StringBuilder sb = new StringBuilder();
        for (int n = 0;; n++)
        {
            int k = ran.nextInt(27);
            if (k == 0)
            {
                break;
            }

            sb.append((char) ('`' + k));
        }

        return sb.toString();
    }

    public static void main(String[] nope)
    {
        //catching a System.out() based code snippet
        //https://stackoverflow.com/questions/4183408/redirect-stdout-to-a-string-in-java
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        System.setOut(new PrintStream(baos));
        //same as randomizer
        //getting hello, world inside a ByteArray
        System.out.println(randomString(-229985452) + " " + randomString(-147909649));

        //undo the redirecct of System.out()
        //https://stackoverflow.com/questions/4183408/redirect-stdout-to-a-string-in-java && https://stackoverflow.com/a/14716148/1405227
        System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));


        //stringify the out of first part
        //https://stackoverflow.com/questions/4183408/redirect-stdout-to-a-string-in-java
        String text = baos.toString();


        //getting rid of the world part
        //https://stackoverflow.com/a/17008136/1405227
        String firstWord = text.substring(0, text.indexOf(' '));

        //needing the word Mom
        //https://stackoverflow.com/a/8341513/1405227
        //history -> a
        String[] a = new String[]
        {
            "hey", "you", "Mom"
        };

        //stitching the array together in a certain fashion ([elem1, elem2, elem3]
        //https://stackoverflow.com/a/2822736/1405227
        //myarray->a
        String b = Arrays.toString(a);

        //getting rid of the ,s
        //https://stackoverflow.com/a/7552284/1405227 stripping annoying bullcrap out
        //result ->c
        //yourString ->b
        String c = b.replaceAll("[-+.^:,]", "");


        //getting the Mom] part
        //https://stackoverflow.com/a/15317037/1405227
        //sentence -> c
        String lastToken = c.replaceAll(".* ", "");

        //getting rid of more crap
        //https://stackoverflow.com/a/18599016/1405227
        //message -> lastToken
        lastToken = lastToken.replaceAll("\\W", "");


        //finally out
        //https://stackoverflow.com/a/19393222/1405227
        //name -> firstWord
        //income -> lastToken
        System.out.println(firstWord + " " + lastToken);
    }
}

문서와 소스 링크는 주석에 있습니다 (//로 시작)

깨끗한 소스 목록


+1. 나는 임의의 hello world 접근 방식으로 가고 싶었지만 지루 해졌고 더 간단하게 수행했습니다. 잘 했어요
durron597

예, 그것을 기억하고 그것을 얻으려면 system.out redirect hax를 남용해야했습니다. 내 접근 방식과 불쾌한 정규식으로 엄마를 얻는 데 시간이 걸렸습니다. 운 좋게도 구글은 SO를 파헤
쳤습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.