Son zamanlarda kendimi Bookworm Deluxe biçiminde bazı nostalji konusunda şımartıyorum:
Daha önce görmediyseniz, hedefin bitişik fayansları kelimeler oluşturmak için birbirine bağlamaktır. Bir dizgenin geçerli bir kelime olup olmadığını belirlemek için, bu kelimeye benzeyen sıkıştırılmış bir formatta saklanan kendi iç sözlüğüne göre kontrol eder:
aa
2h
3ed
ing
s
2l
3iis
s
2rdvark
8s
4wolf
7ves
Sözlüğü açmak için kurallar basit:
Satırın başındaki numarayı okuyun ve önceki kelimenin başından itibaren bu kadar çok karakteri kopyalayın. (Sayı yoksa, en son yaptığınız kadar karakter kopyalayın.)
Aşağıdaki harfleri kelimeye ekleyin.
Yani, bizim ilk kelime olup aa
, ardından 2h
"ilk iki harfini kopyalama aracı olan aa
ekleme ve h
şekillendirme," aah
. Sonra 3ed
olur aahed
ve bir sonraki satırın numarası olmadığından, tekrar oluşturmak için 3 karakter kopyalarız aahing
. Bu işlem sözlüğün geri kalanında da devam eder. Küçük örnek girişinden elde edilen kelimeler:
aa
aah
aahed
aahing
aahs
aal
aaliis
aals
aardvark
aardvarks
aardwolf
aardwolves
Buradaki zorluk, bu paket açma işlemini olabildiğince az sayıda baytta yapmak.
Her giriş satırı, sıfır veya daha fazla rakamdan 0-9
sonra bir veya daha fazla küçük harf içerir a-z
. Girdi alabilir ve çıktıları bir dize listesi olarak veya 0-9
/ dışında herhangi bir karakterle ayrılmış sözcüklerle tek bir dize olarak verebilirsiniz a-z
.
Örnekte ele alınmayan birkaç kenarlı durumu olan başka bir küçük test durumu:
abc cba 1de fg hi 0jkl mno abcdefghijk 10l
=> abc cba cde cfg chi jkl mno abcdefghijk abcdefghijl
Ayrıca, kodunuzu tüm sözlükte test edebilirsiniz: input , output .
locate
Program pathnames kodlayan bu tür kullanır.
0
lider sayısı dışında hiçbir sayının olmadığını varsayabilir miyiz0
?