'dilebih-lebihkan' adalah contoh kata yang dapat diketik di sebelah kiri, pada peta keyboard qwerty normal. 'monopoli' adalah contoh untuk tangan kanan.
Mencari words
file unix untuk kata-kata yang dapat diketik di satu tangan. Keluaran harus dua baris: daftar kata-kata yang dipisahkan oleh spasi untuk tangan kiri, diikuti oleh daftar untuk tangan kanan. misalnya
a abaft abase abased abases abate abated abates abbess abbesses ...
h hi hill hilly him hip hippo hippy ho hokum ...
Huruf-huruf kiri adalah:
qwertasdfgzxcvb
Huruf kanan adalah:
yuiophjklnm'
Huruf besar dihitung dengan satu tangan; surat-surat dengan diakritik dianggap sebagai dua tangan dan karenanya kata-kata yang mengandungnya dapat diabaikan.
[a-gq-tv-xz]
untuk huruf kiri dan['h-puy]
untuk huruf kanan sedikit lebih pendek daripada menulis semuanya.Jawaban:
sed, 78 byte
membutuhkan GNU, jalankan dengan
sed -n -f words.sed < /usr/share/dict/words
sumber
Bash (
10089 karakter)Perhatikan bahwa 21 karakter menuju ke path lengkap ke file words: jika kita diperbolehkan berasumsi bahwa pwd adalah / usr / share / dict maka 16 di antaranya dapat disimpan.
Kredit untuk chron untuk regex yang lebih pendek.
sumber
Bash, 86
Taylors
for
, egrep saya, chron mengelompokkan char.Menurut definisi, jika Anda mengetik dengan dua tangan buta, jika Anda ingin menghasilkan huruf besar, Anda selalu menggunakan tangan kiri untuk menghasilkan karakter huruf besar dari tangan kanan dan sebaliknya.
Tentu saja Anda dapat menghasilkan huruf besar
W
hanya dengan tangan kiri, tetapi Anda juga bisa memproduksijunk
dengan tangan kiri, jika Anda mau.sumber
Bourne shell, 55 karakter
(Atau shell seperti Bourne tetapi
bash
,zsh
atauyash
)Disebut sebagai
sh -f words.sh /usr/share/dict/words
. (tentu saja, pada sistem di manash
sebenarnyabash
seperti pada beberapa distribusi Linux, menggunakan lain Bourne-seperti shell sepertiash
,ksh
,mksh
,pdksh
,posh
...)sumber
Javascript (simpul), 201 byte
Ini mungkin dapat ditulis ulang ke versi yang jauh lebih pendek dalam bahasa lain, tetapi saya hanya ingin mencoba node.
Jalankan dengan
node words.js < /usr/share/dict/words
sumber
Q (
121140 Bytes)Output tidak persis sama (backticks bukannya spasi) tetapi ini merupakan gejala bagaimana Q menampilkan tipe string.
EDIT: Harus menangani case campuran, +20 karakter
sumber
`$'i(&:')(min'')(+)(i:read0`:/usr/share/dict/words)in/:\:(x,upper x:"qwertasdfgzxcvb";y,upper y:"yuiophjklnm'")
Ruby,
11292 karakterEDIT: Ini lebih pendek, meskipun tidak menyenangkan:
Asli:
Solusi berbasis regex yang cukup sederhana. Seperti yang lain, Anda dapat menyimpan beberapa karakter jika Anda diizinkan untuk melewatkan nama file di ARGV atau jika itu diasumsikan berada di direktori Anda saat ini.
sumber
Python, 130 Bytes
Jalankan dengan
python one_handed_words.py < /usr/share/dict/words
sumber
Haskell (191)
sumber
Python 2.7 (139 karakter)
sumber
Perl, 72 byte
jalankan bersama
perl words.pl /usr/share/dict/words
sumber
r
ditambahkan)Python - 152
137karakter (belum diuji)sunting: menangani huruf besar dan apostrof.
sumber
Python, 243 karakter
sunting: inilah program yang lebih sesuai dengan pertanyaan:
aktifkan:
python onehanded.py > /usr/share/dict/words
atau file kata lain dengan kata-kata yang dipisahkan barislama: 141 karakter, hanya fungsi satu kata
kembali
right
atauleft
jikaw
digunakan satu tangan, danboth
jika kedua tangan digunakan.sumber
Q, 95 (111 dengan jalur dict hardcoded)
pemakaian
14 karakter lagi jika Anda meng-hardcode-nya
sumber
J, 109
Saya yakin ini bisa dilakukan dengan lebih baik, saya tidak tahu bagaimana melakukan manipulasi string :-(
sumber
Python: 122
Diluncurkan dengan:
Idenya sebagian besar sama dengan Dillon Cower, tapi saya gunakan
set(w)<=S
untuk menunjukkan subset sementaraset(w)^S>=S
untuk set terpisah.sumber