Клейка стрічка може зафіксувати День матері


54

На основі стрічки "Дукт" можна виправити будь-яке питання, яке було занадто широким, з дуже схожими правилами. Тільки цього разу мета дуже конкретна:

Змагання

Ваша місія полягає в тому, щоб зробити програму, яка відображає hello mom- ніколи не записуючи жодного рядка коду.

Ви можете використовувати лише код, який вже написаний для вас, як у питаннях, так і у відповідях від StackOverflow. Все, що ви можете зробити - це скотч - все найкраще, що ви можете. І звичайно, дуже важливо, щоб ми надали відповідне приписування, щоб ми не припиняли свої права.


Правила

  1. Ви повинні включити посилання на питання / відповіді, які ви використовували у своїй відповіді.
  2. Ви не можете змінювати знайдений код, за винятком наступних випадків:

    а. Ви можете перейменовувати змінні, функції та методи. (Це не означає , що ви можете змінити спосіб виклику , шляхом зміни, скажімо , scanner.nextInt()щоб scanner.nextLine()і стверджуючи , що ви змінюєте ім'я методу. Зміна повинно бути у визначенні або посилання на той же об'єкт.). Рішення все ще має працювати, якщо змінні, функції чи методи будуть перейменовані знову, тому перейменовуючий код, який міститиме hello momім'я змінної, не враховується.

    б. Ви можете відповідним чином відрегулювати відступ.

    c. Можна припустити, що належні модулі завантажуються для роботи фрагментів коду. (наприклад, importзаяви для Java та 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 Це зробило б досить тривіальним передачу будь-якого прикладу привітного світу в привіт-мам-код. Також зверніть увагу на останній рядок у праві про перейменування змінних.
Денніс Джахеруддін

23
7. Ви повинні використовувати фрагменти, розміщені до цього виклику. (Я міг би відповісти на купу питань, пов’язаних із рядками, з кодом, який би це зробив)
Geobits

1
Чи можете ви вставити код в інший фрагмент?
durron597


1
@JeffGohlke або як mчи oлітерал. Або фрагмент, який перетворює кодові точки в символи та фрагменти, які дозволяють обчислити правильну кодову точку. Обмеження - саме те , що заохочує творчість тут. Це те, що я згадував у вашому власному виклику, і чому я запропонував обмежити сферу застосування (і згодом, чому це було закрито).
Мартін Ендер

Відповіді:


60

Брейнфук

О боже, чому я це зробив собі?

Фактично можна знайти кожен символ BF як фрагмент коду десь у якійсь відповіді. Цікавим бітом було складання бітів коду інших людей, кожен з яких представляє собою блок інструкцій BF. На жаль, там в основному немає неперевершених [і ]символів, тому мені довелося трохи обдурити їх, і мені довелося отримати дуже багато пробігу з фанк-фрагмента Haskell, який мав купу плюсів. Напевно, є й інші. Окрім цього, ось код Франкенштейна:

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-dramatic-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, які мають неперевершені []s, але ті, що часто поставляються з .включеними s stackoverflow.com/questions/21898628 / ...
ɐɔıʇǝɥʇuʎs

1
Це круто. +1000
астері

33

Java

Почніть з цього:

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];
}

Додайте потрібне classта public static void main(String[] args){ }дозволене в Правило №2d (не навколо статичного методу) та змініть деякі назви змінних / методів точно в 3 з 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
Це, мабуть, порушує правила; 2а вказує, що ви не можете змінити, до якого методу викликається виклик методу, який ви зробили, змінивши titleCase () на last ().
Біллі Мельдман

1
@BillyMailman, якщо ваша інтерпретація є правильною, ви НІКОЛИ не можете використовувати визначення методу, якщо q / a також не десь забезпечує виклик цього методу. Я спробую відредагувати, чи є постанова від ОП
durron597

2
Насправді, @BillyMailman має рацію. Але , як ви робите це шлях перейменування методи до , titleCase()а не перейменовувати зовнішні посилання. Ось як би ви це зв'язали. Правило 2а диктує, що зміна назв методу / функції є законною.
астері

1
@JeffGohlke Виправлено
durron597

28

C #

Можливо, божевільний, круговий і заплутаний спосіб дістатися до (точного) результату - із лише змінними перейменами та без будь-якої буквальної «мами» в будь-якому коді.

Читання правила "якщо ви виймаєте блок коду з допису, ви приймаєте все", дуже буквально, мабуть, не допомогло - але зробило це веселішим.

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 Fiddle

http://dotnetfiddle.net/PbjhPn

http://dotnetfiddle.net/bg20wb (із зайвими рядками в кодових блоках видалено)

Коротке пояснення

В основному, ми отримуємо "Привіт, світ!" від простого струнного формату. Тепер нам потрібна "мама", щоб замінити її. Для цього ми використовуємо кодований Base64 результат виконання 804 ітерацій PBKDF1 з використанням MD5 зі "world" як паролем та "Hello world!" як сіль. Це дає рядок "ciSf5cCls1l / MoM ...". Ми витягуємо цей "MoM" і використовуємо його як заміну на "world". Потім зачищаємо рядок.

Як нам дістатися до 804? Попередній рік обрізали на три символи (= "201"), а потім множили на 4.

Довгі пояснення та приписи

1: Почнемо з трохи перевиконання правил. Ціле число 3 - дуже важлива константа в цій програмі. Тут ми призначимо це ціле число n. Ми повинні включити весь блок із джерела. Це може бути зайвим, але воно складеться чудово, доки ми перейменовуємо splitзмінну, яка нам знадобиться пізніше. Джерело

Замінені імена змінних:

split              > helloAndGoodbye

2: Встановіть початковий рядок ("Привіт, світ!"). Джерело

Це дуже особисте повідомлення нашої мами. Тому нам, очевидно, потрібна криптовалюта, щоб мати справу з цими типами АНБ. Для цього нам знадобляться деякі параметри, які ми зараз готуємо.

3: Перетворити greet("Hello world!") В байтовий масив для засолювання. Джерело

myString           > greet

4: Хоча ми використовуємо криптографію, нам насправді не потрібно інстанціювати клас MD5. Однак нам потрібна рядок "MD5", призначений для подальшого використання одного з наших параметрів, - і це не просто знайти у використаному коді. Тож ми візьмемо ще один "ярлик" ... Ще раз, весь код коду включений відповідно до правил, хоча нам потрібен лише другий рядок. Джерело

5: Тепер нам знадобиться назва типу md5змінної ( MD5CryptoServiceProvider). Це ifще одне надмірність. Джерело

entity             > md5

6: Отримайте перші 3 (ooh, є наші постійні!) Символи назви типу. Джерело

s                  > strName
truncatedToNLength > HashAlgorithm

7: Тролінг коду: Використання DateTime.Nowозначатиме, що це буде працювати лише до 2019 року. Щоб зробити це ще більш надійним доказом, ми використовуємо попередній рік. Тоді вона працюватиме до 2020 року ;-) Джерело

8: Перетворимо наш previousYearу рядок. Джерело

myInt              > previousYear

9: Гей, повторне використання коду! ;-) Отримайте перші 3 (наші постійні!) Символи нашого року. Джерело

s                  > myString
truncatedToNLength > totallyRandomString

10: Ааааааа ... перетворити результат назад у ціле число. Джерело

myString           > totallyRandomString

11: Ерік Ліпперт робить кожну відповідь кращою. Помножте на 4 круговим способом. Джерело

y                  > myInt

12: Надіслати place(пароль) та greet(сіль) через PBKDF1 за допомогою MD5 з x(що зараз 201*4 = 804) ітераціями. Джерело

Password           > place
SaltValueBytes     > b1
PasswordIterations > x

13: Джон Скіт також робить кожну відповідь кращою. Перетворимо наш похідний пароль в базу 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), який би використовувався в якості вхідного сигналу - з "виправданням троля", відповідно до пункту "ми створили наш" Привіт світ! " рядок, тому гарною практикою буде використання тут "Створеного" коду статусу ". На жаль, я ніколи не знайшов використання HttpStatusCodeперерахунку, який не ввів залежності від більшості фреймворків ASP.NET WebAPI.

  • Початок коду (формат рядка "Привіт, світ!") Ніколи не переглядався знову після того, як я вперше додав його. Якби я, так, я, можливо, зрозумів би, що призначення placeбуло насправді в іншому блоці в джерелі, - тому я міг просто призначити свою похідну "маму", placeа не використовувати "світ" і пізніше замінити її. Ну добре.


5
+1 для "мама - це наш світ", і "Ліпперт і Скіт покращують кожну відповідь".
Флоріс

"Обріжте на добру міру ..." дав мені добру посмішку.
Ніт

24

Befunge 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 до верхнього значення
  • * помножує два перших значення
  • 1+:, з кроком цього числа, дублікатів та відбитків
  • "L "+111+++,відбитки o. ,друкує mз раніше, і d @натискає 13(що нічого не робить) і завершує програму.

4
І так. Я насправді запустив це, і це виходитьhello mom
Джастін

14

Java

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


Чудова знахідка!
Флоріс

1
Насправді я трохи шукав, перш ніж розпочати виклик, і не сподівався знайти цілісні рішення, як це, в одному дописі. Приємно, що ти знайшов його все одно!
Денніс Джахеруддін

11

С

Більшість цього коду походить від відповіді на пошук початку першого слова, яке є паліндром [sic], опублікований BLUEPIXY , який виводить слово mom. У рядках 21 і 22 виводиться helloфрагмент коду в кінці відповіді на printf ("%%% s", "привіт") користувачем142019 (який, на щастя, додав крапку з комою в кінці), і пробіл між слова походять від відповіді на тему " Як надрукувати пробіл з прокладкою в 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

Java

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. Я хотів іти на підхід до випадкового привіт, але нудьгував і робив це прямо. прекрасно зроблено
durron597

так, згадав це, і щоб його вийти, мені довелося зловживати system.out перенаправленням hax. мені знадобилося деякий час, щоб отримати маму з моїм підходом і деякими неприємними регексами. але на щастя, у нас є Google копати SO
masterX244
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.