«Преувеличено» - это пример слова, которое можно набрать левой рукой на обычной клавиатуре qwerty. «Монополия» является примером для правой руки.
Поиск в words
файле unix слов, которые можно набрать одной рукой. Вывод должен состоять из двух строк: разделенный пробелами список таких слов для левой руки, за которым следует список для правой руки. например
a abaft abase abased abases abate abated abates abbess abbesses ...
h hi hill hilly him hip hippo hippy ho hokum ...
Буквы слева:
qwertasdfgzxcvb
Правые буквы:
yuiophjklnm'
Прописные буквы считаются одноручными; буквы с диакритическими знаками считаются двуручными, поэтому слова, содержащие их, можно игнорировать.
[a-gq-tv-xz]
для левых и['h-puy]
правых букв немного короче, чем выписывать их все.Ответы:
sed, 78 байт
требует GNU sed, запустить с
sed -n -f words.sed < /usr/share/dict/words
источник
Баш (
10089 символов)Обратите внимание, что 21 символ идет по полному пути к файлу слов: если нам разрешено предполагать, что pwd - это / usr / share / dict, то 16 из них можно сохранить.
Кредит chron для более коротких регулярных выражений.
источник
Баш, 86
Тейлорс
for
, мой эгреп, группа хронов из символов.По определению, если вы печатаете двумя руками вслепую, если вы хотите создать заглавную букву, вы всегда используете левую руку для получения заглавной буквы правой руки и наоборот.
Конечно, вы можете изготовить заглавные буквы
W
только левой рукой, но вы можете производитьjunk
и левой рукой, если хотите.источник
Bourne shell, 55 символов
(Или любая похожая на Борн оболочка, но
bash
,zsh
илиyash
)Называется как
sh -f words.sh /usr/share/dict/words
. (конечно, в системах , гдеsh
на самом деле ,bash
как в некоторых дистрибутивах Linux, использовать другой Bourne-подобные оболочки , какash
,ksh
,mksh
,pdksh
,posh
...)источник
Javascript (узел), 201 байт
Вероятно, это можно переписать в гораздо более короткую версию на другом языке, но я просто хотел попробовать узел.
Бежать с
node words.js < /usr/share/dict/words
источник
Q (
121140 байт)Вывод не совсем то же самое (обратные черты вместо пробелов), но это симптоматично, как Q отображает строковые типы.
РЕДАКТИРОВАТЬ: пришлось обрабатывать смешанный случай, +20 символов
источник
`$'i(&:')(min'')(+)(i:read0`:/usr/share/dict/words)in/:\:(x,upper x:"qwertasdfgzxcvb";y,upper y:"yuiophjklnm'")
Рубин,
11292 персонажаРЕДАКТИРОВАТЬ: Это короче, хотя и не так весело:
Оригинал:
Довольно простое решение на основе регулярных выражений. Как и с другими, вы можете сохранить некоторые символы, если вам разрешено передавать имя файла в ARGV или если оно предполагается в вашем текущем каталоге.
источник
Python, 130 байт
Бежать с
python one_handed_words.py < /usr/share/dict/words
источник
Хаскелл (191)
источник
Python 2.7 (139 символов)
источник
Perl, 72 байта
бежать с
perl words.pl /usr/share/dict/words
источник
r
был добавлен флаг неразрушающего замещения )Python - 152
137символов (не проверено)редактировать: обрабатывать верхний регистр и апостроф.
источник
Питон, 243 символа
изменить: вот более совместимая программа в зависимости от вопроса:
вызвать:
python onehanded.py > /usr/share/dict/words
или любой другой файл слов с разделенными новой строкой словамистарый: 141 символ, просто функция из одного слова
возвращает
right
илиleft
еслиw
одноручный, иboth
если обе руки используются.источник
Q, 95 (111 с жестко закодированным диктовым трактом)
использование
Еще 14 символов, если вы жестко закодировали
источник
J, 109
Я уверен, что это можно сделать лучше, я не знаю, как делать манипуляции со строками :-(
источник
Питон: 122
Запущено с:
Идея в основном та же, что и у Диллона Кауэра, но я использую
set(w)<=S
для обозначения подмножества, аset(w)^S>=S
для непересекающегося множества.источник