Вывести qwerty клавиатуру


37

Для данного персонажа выведите (на экран) всю раскладку клавиатуры qwerty (с пробелами и символами новой строки), которая следует за символом. Примеры проясняют

Вход 1

f

Выход 1

g h j k l
z x c v b n m

Вход 2

q

Выход 2

w e r t y u i o p
a s d f g h j k l
z x c v b n m

Вход 3

m

Выход 3

(Программа завершается без вывода)

Вход 4

l

Выход 4

z x c v b n m

Самый короткий код выигрывает. (в байтах)

PS

Допускаются дополнительные новые строки или дополнительные пробелы в конце строки.


Достаточно ли функции или вам нужна полная программа, которая читает / записывает в stdin / stdout?
— agtoever

1
@agtoever Согласно meta.codegolf.stackexchange.com/questions/7562/… , это разрешено. Однако функция все равно должна выводиться на экран.
— ghosts_in_the_code

@agtoever Попробуйте эту ссылку вместо. meta.codegolf.stackexchange.com/questions/2419/…
— ghosts_in_the_code

1
допускается ли пробел перед строкой?
— Сахил Арора

1
@SahilArora Нет.
— ghosts_in_the_code

Ответы:


19

CJam, 42 40 байт

"wertyuiop asdfghjkl zxcvbnm"q/W=S%Sf*N*

Проверьте это здесь.

объяснение

"we...nm"
     e# Push the letters in order, without q. We don't need q, because it will never
     e# be part of the output.
q/   e# Split the string around the input. If the input is "q", the entire string
     e# will go into a single chunk.
W=   e# Select the last chunk.
S%   e# Split the string around spaces, discarding empty segments (only relevant for the 
     e# first segment if the input is "p" or "l").
Sf*  e# Join each line by spaces.
N*   e# Join the lines by linefeeds.

Что такое e#? Это синтаксис CJam для комментария? Заранее спасибо.
— AL

@ Да, это так.
— Мартин Эндер

11

Pyth, 33 байта

jjL\ cec."`zÈ´ýß44,ûtKÕÀ@"z\`

Обратите внимание, что некоторые символы непечатаемы. Попробуйте онлайн в компиляторе Pyth .

Как это работает

jjL\ cec."`z…"z\`

        ."`z…"     Unpack …, with lowest character '`' and highest character `z`.
       c      z    Split at occurrences of the input (z).
      e            Retrieve the last resulting chunk.
     c         \`  Split into rows, at backticks.
 jL\               Separate the characters of each row by spaces.
j                  Separate the rows by linefeeds.

Оу, чувак, я только что создал свою первую программу Pyth (всего 38 байт!), Затем вы пришли ... +1 Кстати, я думаю, что \ это эквивалентно d.
— ETHproductions

Ой, я думаю, что это не то же самое ... что отличается?
— ETHproductions

1
@ETHproductions @Dennis По той же причине почему md5не получается 5 пробелов. dпеременная по умолчанию, которая перебирает итеративный аргумент оператора карты. И jL\ <list>это просто ярлык для оператора карты mj\ d<list>.
— Якуб

1
@ Якуб О, это имеет смысл. Благодарность!
— Деннис

10

Perl, 56 байт

#!perl -p
'qwertyuiop
asdfghjkl
zxcvbnm'=~/$_
?/;$_=$';s/\B/ /g

Считая Шебанг как 3, ввод берется из стандартного ввода. Если ведущий символ новой строки не является проблемой для входов pи l, затем /$_\n?/может быть заменен на голой , $_чтобы сохранить 4.


Образец использования

$ echo g|perl qwerty.pl
h j k l
z x c v b n m

$ echo v|perl qwerty.pl
b n m

2
Спасибо за то, что научили меня\K !
— Дом Гастингс

@DomHastings в этом случае, это не было действительно необходимо для подсчета байтов, s/.\B/$& /gбудет работать одинаково хорошо. Лучший пример .
— Примо

6

GS2 , 38 37 байт

♦wertyuiop asdfghjkl zxcvbnm♣B3$,■♪2◙

Исходный код использует кодировку CP437 . Попробуйте онлайн!

Тестовый забег

$ base64 -d > qwerty.gs2 <<< BHdlcnR5dWlvcCBhc2RmZ2hqa2wgenhjdmJubQVCMyQs/g0yCg==
$ wc -c qwerty.gs2
37 qwerty.gs2
$ echo -n f | gs2 qwerty.gs2
g h j k l
z x c v b n m

Как это работает

♦                                      Begin string literal.
 wertyuiop asdfghjkl zxcvbnm
                            ♣          End string literal.
                             B         Swap the string with the input.
                              3        Split the string at the input character.
                               $       Select the last chunk.
                                ,      Split the selected chunk at spaces.
                                 ■     Map over the resulting array:
                                  ♪      Push ' '.
                                   2     Join the characters, separating by ' '.
                                    ◙    Push a linefeed.

6

C #, 112 байт 105 110

Счет увеличился на 5 байтов, но правильнее! Спасибо @ MartinBüttner !!

void c(char i){System.Console.Write(@"q w e r t y u i o p
a s d f g h j k l
z x c v b n m".Split(i)[1].Trim());}

Un-golfed

void c(char i)
{
    System.Console.Write(@"q w e r t y u i o p
    a s d f g h j k l
    z x c v b n m".Split(i)[1].Trim());
}

5

JavaScript (ES6), 60 байт

x=>[...`qwertyuiop
asdfghjkl
zxcvbnm`].join` `.split(x)[1]

Использует ту же технику, что и большинство других ответов. Предложения приветствуются!


Можете ли вы объяснить, почему вы используете "...". Я пытаюсь без JSFiddle и все еще работает?
— Аваши

@Awashi Это оператор распространения . Он разделяет строку на массив символов. Без .join` `этого ничего бы не делалось и в результате не было бы пробелов.
— user81655 26.11.15

@ user81655 Tank you
— Awashi

4

Рубин, 63 57 байт

Принимает символ в качестве аргумента командной строки: ruby keyboard.rb e

"qwertyuiop
asdfghjkl
zxcvbnm".scan$*[0]
puts$'.chars*' '

4

TeaScript , 50 45 44 байта

TeaScript - это JavaScript для игры в гольф.

`qwertyuiop
asdfghjkl
zxcvbnm`.s×[1]s(b)j(p)

Неуправляемый и объяснение

`qwertyuiop
asdfghjkl
zxcvbnm`.s(x)[1]s(b)j(p)

      // Implicit: x = input string
`...` // Take the qwerty string,
.s(x) // and split it at the input.
[1]   // Take the second item from this,
s(b)  // split it into chars,
j(p)  // and join the result with spaces.
      // Implicit: output final expression

3

JavaScript ES6, 73

f=x=>[...(k=`qwertyuiop
asdfghjkl
zxcvbnm`).slice(k.search(x)+1)].join` `

Если начальный символ новой строки не разрешен, когда параметр равен pили l, то 83

f=x=>(k=`q w e r t y u i o p
a s d f g h j k l
z x c v b n m`).slice(k.search(x)+2)


3

Sed, 59 символов

(58 символов кода + 1 символ опции командной строки.)

s/./&qwertyuiop\nasdfghjkl\nzxcvbnm/
s/(.).*\1//
s/\w/& /g

Образец прогона:

bash-4.3$ echo -n 'f' | sed -r 's/./&qwertyuiop\nasdfghjkl\nzxcvbnm/;s/(.).*\1//;s/\w/& /g'
g h j k l 
z x c v b n m 

3

Рубин, 86 87 83 71 66

puts"qwertyuiop
asdfghjkl
zxcvbnm ".split($*[0])[1].gsub /./,'\& '

Дополнительный пробел после mдолжен предотвращать сбой программы, если ввод «m».

Спасибо @manatwork за ~ 16 байтов советов


Дай угадаю ... Слишком много Python-кодирования в последнее время?
— manatwork

1
Некоторые незначительные изменения синтаксиса: ARGV→ $*; each_char→ chars; do.. end→ {.. }; printf→ $><<+ %приведет к следующему: "qwertyuiop↵asdfghjkl↵zxcvbnm".split($*[0])[1].chars{|i|$><<"%s "%i}. Больше в Советы для игры в гольф в Руби .
— manatwork

@manatwork Впервые пытаюсь сыграть в гольф в Ruby, спасибо за советы / ссылку!
— SnoringFrog

1
Я вижу, вы не поняли подсказку в моем первом комментарии. В Ruby нет необходимости в тройных кавычках вокруг многострочных строк. (На самом деле я до сих пор понятия не имел, что Ruby его принял.)
— manatwork

1
Ведущие места в выводе довольно безобразны. Как .в регулярном выражении не соответствует \nпо умолчанию, лучше использовать , что для интервала: puts"qwertyuiop↵asdfghjkl↵zxcvbnm ".split($*[0])[1].gsub(/./,'\& '). Хотя длина кода останется прежней.
— manatwork

2

PHP, 88 байт

<?=$m[1&ereg("$argn.(.*)",'q w e r t y u i o p
a s d f g h j k l
z x c v b n m',$m)];

Требуется параметр -Fкомандной строки, который считается равным 3. Предполагается настройка .ini по умолчанию (вы можете отключить локальный .ini с помощью -n).


Образец использования

$ echo g|php -F qwerty.php
h j k l
z x c v b n m

$ echo v|php -F qwerty.php
b n m

2

Пролог (SWI), 153 133 байта

Изменить: сократить 20 байтов с советами от @Fatalize

Код

b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).
p(X):-name(X,C),b(`q w e r t y u i o p \r\na s d f g h j k l \r\nz x c v b n m`,C),!.

объяснение

p(X):-name(X,C),                                                               % Get charcode of input
      b(`q w e r t y u i o p \r\na s d f g h j k l \r\nz x c v b n m`,C),!.    % Get keyboard chars as charcodes and call b
b([A,_|T],[H]):-A=H,                                                           % If list head is input element
                writef('%s',[T]);                                              % Interpret list as charcodes and print as string
                b(T,[H]).                                                      % Else remove first element of list and try again

Примеры

>p(f).
g h j k l 
z x c v b n m

>p(q).
w e r t y u i o p 
a s d f g h j k l 
z x c v b n m

Используя SWI-Prolog, вы могли бы сократить atom_codesчасть, используя обратные кавычки, которые разделяют строковые коды (чтобы вы могли напрямую заменить L в вызове bна строку).
— Роковая

@ Фатализировать круто! Так как я использую SWI-Prolog для тестирования в любом случае, это звучит как отличная идея.
— Эминья

Кроме того, b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).вместо 2 разных правил используется на b7 байт короче. Обычно всегда проще объединить все правила в единое с OR, ;вместо того, чтобы писать несколько правил, потому что вы избегаете повторения имени и параметров предиката и также избегаете перевода строки;)
— Fatalize

Прошло так много времени с тех пор, как я выучил Пролог, что я совершенно забыл, что тебе это ИЛИ может нравиться. Отличный совет! Спасибо :)
— Emigna

2

Befunge, 122 байта

"m n b v c x z"25*"l k j h g f d s a"v
v1-")"g2-"U"~"q w e r t y u i o p"*25<
>-:#v_$>:#,_@ZVD0FHJ:LNP^\<>,2B48X.T6R
^1$\<

Это было проверено здесь: переводчик Befunge-93 .

Как это работает

  • 'q w e r t y u i o p\na s d f g h j k l\nz x c v b n m' помещается в стек.
  • Количество значений, которые нужно отбросить (жестко закодировать @ZVD0FHJ:LNP^\<>,2B48X.T6R), N передается.
  • Первые N значений отбрасываются, а остальные значения печатаются.

Заметка

Я выбрал кодировку, поэтому строка начинается с @того, чтобы перекрываться с программой. Эта строка генерируется с помощью следующего кода Python:

import string
letters = string.ascii_lowercase
base = 'q w e r t y u i o p a s d f g h j k l z x c v b n m'
print(''.join(chr(base.index(x) + 32 + 9 + 3) for x in letters))

1
Хороший первый ответ! Добро пожаловать в Code Golf SE. (Я также новичок.)
— ghosts_in_the_code

1

Свинка - 102 байта

Гольф-скрипт:

S A="qwertyuiopasdfghjklzxcvbnm",B=0 R P F I=1:1:$L(A) S Q=$E(A,I) W:B Q," " X:"qpl"[Q "W !" S:Q=P B=1

Развернулся и прокомментировал:

 S A="qwertyuiopasdfghjklzxcvbnm" ; Need the qwerty order
 S B=0 ; boolean flag for printing, default to false.
 R P   ; read from stdin into P
 F I=1:1:$L(A) D   ; Count I from 1 to length of qwerty variable; do all of the following:
 . S Q=$E(A,I)     ; Extract 1 letter (at position I) from A and save in Q.
 . W:B Q," "       ; If our print flag (B) is true, print the letter in Q & a space.
 . X:"qpl"[Q "W !" ; If Q is q, p or l, write a cr/lf
 . S:Q=P B=1       ; If Q == P (stdin) change our print flag from false to true.

Правило, разрешающее дополнительные символы новой строки, сэкономило мне почти 10 байт ...


1

Java - 107 байт

void q(char c){System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replaceAll("\\w","$0 "));}

Разгруженный с чтением класса оболочки из System.in

public class Qwerty {

    public static void main(String[] args) {
        new Qwerty().q(new java.util.Scanner(System.in).next().charAt(0));
    }
    void q(char c) {
        System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replaceAll("\\w","$0 "));
    }
}

Если бы пробелы в начале строки были приемлемы, мы могли бы уменьшить размер до 99 байт:

void q(char c){System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replace(""," "));}

1

Python 2, 58 67 63 байта ##

lambda x:" ".join("qwertyuiop\nasdfghjkl\nzxcvbnm".split(x)[1])

Принимает ввод в виде строки или символа. Разбивает строку на входе и распечатывает все после разделения.

(Первый раз игра в гольф, пожалуйста, будьте осторожны: P)

РЕДАКТИРОВАТЬ: не видел дополнительные пробелы, необходимые между символами, добавлены сейчас

РЕДАКТИРОВАТЬ 2: Изменено, чтобы быть анонимной лямбда-функцией и удалить дополнительный разделенный аргумент, экономя 4 байта


Добро пожаловать в PPCG! Я не думаю, что вам нужно пробел после print, но кажется, что это не печатать пробелы между каждой парой букв.
— Мартин Эндер,

Не могу предоставить ссылку прямо сейчас, но когда интерпретатор требует дополнительного форматирования ввода, это также включается в счетчик. (Поправьте меня, если я ошибаюсь, но я думаю, что это работает, только если входные данные передаются вместе с "f"
— заключенными в

Хороший первый гольф. Функции разрешены по умолчанию, даже анонимные, поэтому короче сделать это как lambda s:.... Я думаю, что разделение не нуждается в аргументе 1, так как персонаж появляется только один раз. Это выводит пробелы в начале последующих строк, не уверенный, разрешено ли это.
— xnor

1

Рубин, 59 57 67 байт

Добавлены пробелы между буквами

puts"qwertyuiop\nasdfghjkl\nzxcvbnm".split(gets.chop)[-1].chars*' '

Это не сработало на входе «m». Это можно легко исправить, изменив индекс массива с -1 на 1, но тогда на входе появится «m» nil. Что само по себе не проблема, но при завершении кода у вас возникнут проблемы с добавлением пробелов между буквами.
— Манатворк

1

JavaScript, 88 байт

function s(d){alert("qw e r t y u i o p\na s d f g h j k l\nz x c v b n m".split(d)[1])}

(нет необходимости в пробелах после первого символа, так как он никогда не попадает на выход)

Предупреждает клавиатуру, когда вы звоните s("some letter"). Можно также сделать с document.write()или console.log(), но эй, это длиннее: P

Демо-версия:

function s(d){alert("qw e r t y u i o p\na s d f g h j k l\nz x c v b n m".split(d)[1])}

s(prompt("Enter the key"));


1
Возможно, вы могли бы сэкономить несколько байтов, просто используя \nвместо ;строки и избавившись от замены.
— ETHproductions

@ Конечно, спасибо! Я использовал замену, потому что сначала, без учета разрывов строк, замена будет сокращаться. Затем я заметил, что разрывы строк должны быть там, поэтому я использовал замену снова. Даже не думал, что это может сделать код длиннее: D
— nicael

1

SQL (MS T-SQL), 172 байта

CREATE PROC c @I CHAR(1) AS DECLARE @S CHAR(49) SET @S = 'w e r t y u i o p' + CHAR(13) + 'a s d f g h j k l' + CHAR(13) + 'z x c v b n m' PRINT RIGHT(@S,LEN(@S)-CHARINDEX(@I,@S))

Ungolfed:

CREATE PROC c                           -- Create a procedure named "c"
    @I CHAR(1)                          -- Which is invoked with a single character input (@I)
AS

DECLARE @S CHAR(49) = 'w e r t y u i o p' + CHAR(13) + 'a s d f g h j k l' + CHAR(13) + 'z x c v b n m' -- Initialise the entire output omitting "q " as @S
PRINT RIGHT(@S,LEN(@S)-CHARINDEX(@I,@S))    -- Use the charindex funtion to effectively substring @S

Я новичок здесь, только что обнаружил этот сайт. Не знаю, правильно ли я написал или T-SQL разрешен, но я знаю, что описанная выше процедура работает.


1

O 2,2, 48 46 символов

"qwertyuiop
asdfghjkl
zxcvbnm
"i/r;s{n.U=ST?}d

Образец прогона:

bash-4.3$ ./o keyboard.o <<< 'f'
g h j k l 
z x c v b n m 

O, 61 символов

"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;""/rl{.o"\n"={}{' o}?}d

Образец прогона:

bash-4.3$ java xyz.jadonfowler.o.O keyboard.o <<< 'f'
g h j k l 
z x c v b n m 

По какой-то причине это не работает в IDE, сейчас мы разбираемся с этим ...
— этап

"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;s{n.'\n=ST?}dработает только на новом интерпретаторе, но составляет 51 байт.
— этап

Постоянные ссылки ... работа в процессе: P
— фаза

Да, в каталоге libregexp
— фаза

мерзавец клонирует репо, затем git submodule update --init, затемmake
— фаза

1

Japt , 49 42 41 40 38 байт

Japt - это сокращенная версия Ja vaScri pt . переводчик

`qØÆyuiop\n?dfghjkl\nzxcvbnm`qU g1 ¬qS

?Должен быть нецензурным Unicode символ U + 0086.

Как это работает

          // Implicit: U = input char
`...`     // Take the compressed string and decompress it.
qU g1     // Split the string at the input and take the second item.
¬qS       // Split into chars, then join with spaces.
          // Implicit: output final expression

Теперь бить CJam! :) Предложения приветствуются!

Неконкурентная версия, 12 байт

;Dv qU g1 ¬¸

По состоянию на 11 января я добавил новую замечательную функцию в Japt: если программа содержит начальную запятую, переменные ABCDEFGHIJLпереопределяются на различные значения. Dустановлен на "QWERTYUIOP\nASDFGHJKL\nZXCVBNM", поэтому ;Dvдостаточно заменить строку здесь.


0

Гема, 56 знаков

?=@subst{\\A\*?=\;\?=\? ;qwertyuiop\nasdfghjkl\nzxcvbnm}

Образец прогона:

bash-4.3$ echo -n 'f' | gema '?=@subst{\\A\*?=\;\?=\? ;qwertyuiop\nasdfghjkl\nzxcvbnm}'
g h j k l 
z x c v b n m 

0

8086 машинный код + DOS, 61 байт

Hexdump (с видом ASCII справа):

B8 1E 01 8B F8 CD 21 B1 1F F2 AE 8B F7 AC 8A D0 ......!.........
B4 02 CD 21 80 E2 20 74 02 CD 21 E2 F0 C3 71 77 ...!.. t..!...qw
65 72 74 79 75 69 6F 70 0D 0A 61 73 64 66 67 68 ertyuiop..asdfgh
6A 6B 6C 0D 0A 7A 78 63 76 62 6E 6D 0D          jkl..zxcvbnm.

Исходный код сборки (может быть собран с помощью tasm):

    .MODEL TINY

    .CODE
    org 100h

    MAIN PROC

    mov ax, offset qwerty ; sets ah=1 (coincidence)
    mov di, ax      ; di points to the string
    int 21h         ; reads a char from keyboard into al

    mov cl, 31      ; cx is the length of the string
    repne scasb     ; look for the char
    mov si, di      ; si now points beyond the found char

myloop:
    lodsb           ; load a char
    mov dl, al
    mov ah, 2
    int 21h         ; output the char

    and dl, 20h     ; if it's a letter, set it to a space
    jz print_done   ; if it's not a letter, don't print a space
    int 21h         ; if it's a letter, print a space
print_done:
    loop myloop     ; repeat until end of string

    ret

qwerty db 'qwertyuiop',13,10,'asdfghjkl',13,10,'zxcvbnm',13

    MAIN ENDP
    END MAIN

Две забавные вещи здесь:

  1. Смещение qwertyструны 0x011e. Старший байт равен 1, что является номером функции DOS для ввода символов. Это экономит 1 байт в коде.
  2. Все строчные буквы имеют бит 5. При выполнении ANDс 0x20они все превращаются в пространство, которое затем печатается. Если предыдущий символ был байтом конца строки, он превращается в 0, и пробел не выводится. Это используется, чтобы избежать бессмысленной последовательности 0d 20 0a 20в конце строки.

Одна почти забавная вещь:

Я попытался найти входной символ, начинающийся с адреса 0 (который уменьшил размер программы на 2 байта), вместо обычного места (начало строки). Это почти сработало; однако, это не удалось для ввода t, потому что сам код содержит байт t(как часть кодирования условного перехода). Так что t, это вывело бы несколько ненужных байтов:

выход


0

𝔼𝕊𝕄𝕚𝕟, 32 символа / 79 байтов

⟦ɘƄ瀛ذ鸊ް΀ꀆဓƘ᳀ᘁ堍怍訁码聮Ęݠⶰ䀀#]ø⬭Čï⎖1

Try it here (Firefox only).

По крайней мере, я выигрываю в счетчике символов ... (Счетчик байтов - это другая история.)

Ах да, только что понял, что я внедрил ярлыки индекса ( ⎖1а не [1]) некоторое время назад. Я такой глупый!


Что это за язык? или это буквально так: i.imgur.com/WC7XvYs.png (и есть документация) это странно, ага!
— ʰᵈˑ

Это ESMin. Письма написаны двойными буквами, поэтому у вас могут возникнуть проблемы с их просмотром. См. Github.com/molarmanful/ESMin (однако документы устарели).
— Mama Fun Roll

0

C ++, 129, 112 97 байт

#include<string>
#include<cstdio>
void o(char c){puts(strstr("qwertyuiopasdfghjklzxcvbnm",&c));}

Ungolfed:

#include<string>
#include<cstdio>
void o(char c)
{
    puts(strstr("qwertyuiopasdfghjklzxcvbnm",&c));
}

Вы можете сбрить 17 байтов, используя putsвместоstd::cout<<
— DJMcMayhem

@DJMcMayhem Спасибо! Отличный момент: по какой-то причине я думал, что мне все еще нужно #includeдля puts, но, очевидно, я этого не делаю!
— Тас

Кроме того, это еще 12 короче.
— DJMcMayhem

Благодарность! Я даже не знал, что это strstrбыла вещь.
— Тас

Я думаю, что это немного перегружено. Вам нужно <stdio.h>для strstr.
— DJMcMayhem

0

Пакетный, 206 + 2 = 208 байт

Поскольку это использует отложенное расширение, вам нужно вызвать его CMD /V /C keyboard.cmd <letter>, добавив 1 2 для /Vкоммутатора.

@echo off
set a=q w e r t y u i o p
set b=a s d f g h j k l
set c=z x c v b n m
if not "!a:*%1 =!"=="!a!" echo !a:*%1 =!
if not "!a:*%1=!!b:*%1 =!"=="!a!!b!" echo !b:*%1 =!
if not %1==m echo !c:*%1 =!

Я боюсь, что параметр командной строки будет считать 1, если cmdпримет его так /VC, как это делают инструменты POSIX. Но, как я знаю, /Vтребует своего /, который также учитывается.
— manatwork

0

Python, 109 байт

Я знаю, это немного большой, но это все, что я знаю, как сделать прямо сейчас!

def kb(c): 
 s = "q w e r t y u i o p \n a s d f g h j k l \n z x c v b n m"
 a = s.split(c)
 print(a[1])

Я не думаю, что вам нужно позвонить kb()в конце; определения функции достаточно. Также достаточно 1 места для отступа. После внесения этих изменений я получаю 108 байт, используя этот сайт .
— ETHproductions

@ETHproductions Вау, я не знал, что когда-то космическая вещь. (Плохо знаком с Python). Еще раз спасибо за помощь!
— Эшвин Гупта

0

Баш, 80 байт

x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*$1}|sed 's/./& /g'

Попробуйте сами, либо замените $ 1 нужным символом, либо создайте скрипт #! / Bin / bash.

Вот несколько примеров из Cygwin:

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*q}|sed 's/./& /g'
w e r t z u i o p
a s d f g h j k l
y x c v b n m

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*m}|sed 's/./& /g'

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*h}|sed 's/./& /g'
j k l
y x c v b n m

Это не самое короткое, но я все еще горжусь этим!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.