Bugünkü zorluğunuz t9 benzeri bir işlevsellik uygulamaktır .
Sadece 2 parametreye sahip olacak bir fonksiyon uygulayacaksınız.
Bir dizede 1 telefon numarası ve bir kelime listesi içeren bir metin dosyasının içeriği alırsınız (belirli bir yeni satır stili varsaymayın). İşlevi test etmek için https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt
bağlantısını kullanabilir veya daha fazla bilgi için (Kapalı bir kelime listesiyle [kapalı] bir metin dosyasını kontrol edin) kullanabilirsiniz. bilgi)./usr/share/dict/words
Her zaman en az 2 numara alacağınızı varsayabilirsiniz.
Sayı göz önüne alındığında, bir kelime listesinden okuyacak ve harflerle başlayan kelimeleri bu kelimelerle döndüreceksiniz. Bu, girişin yalnızca 2'den 9'a kadar sayılar olması gerektiği anlamına gelir
. Geçersiz giriş alırsanız istediğiniz her şeyi yapabilirsiniz.
Eşleşme bulunursa, boş bir listesini döndürür, olabilir null
/ nil
veya 0
.
Cep telefonu tuşlarının eşdeğer karakterlerle eşlendiğini unutmayın:
- 0 ve 1 geçersiz
- 2 eşleşme [abc]
- 3 eşleşti [def]
- 4 eşleşme [ghi]
- 5 eşleşme [jkl]
- 6 eşleşme [mno]
- 7 eşleşme [pqrs]
- 8 eşleşme [tuv]
- ve 9 eşleşme [wxyz]
Örnekler:
f('52726')
//returns ["Japan","japan","Japanee","Japanese","Japanesque"...,"larbowlines"]
f('552')
//returns ["Kjeldahl","kjeldahlization","kjeldahlize"...,"Lleu","Llew"]
f('1234')
//makes demons fly out your nose or divide by 0
f('9999')
//returns ["Zyzzogeton"]
f('999999')
//returns [] or null/nil or 0
İşlevinizi çalıştırdıktan sonra istediğiniz şekilde yazdırabilirsiniz.
Kurallar:
- Standart boşluklar GEÇERSİZDİR
- Ne olduğunu bile bir şey dönmelidir
null
/nil
JavaScript dönecektirundefined
şey dönmemesi halinde, bu nedenle bu kuralı. - Başkalarının cevaplarını kullanamaz veya yeniden uygulayamaz veya uygulamamı kopyalayamazsınız.
- Javascript için tarayıcının zaten açılacağını ve otomatik elemanın
innerText
/textContent
parametresinin 2. parametre olarak iletileceğini varsayabilirsiniz. - Derlenmiş diller için derleyiciye özel argümanlar iletemezsiniz
- Dosya adını derleyici argümanları üzerinden alabilirsiniz
- Değişkenler, makrolar, genel değişkenler, sabitler, standart olmayan sınıflar ve işlev içindeki diğer değerleri geçen tüm türler geçersiz sayılacaktır.
- Javascript'te, anahtar kelimesi olmayan değişkenler
var
kodunuzu geçersiz kılar - İşleviniz adlandırılacak
f
- İşlevinizde yalnızca ve yalnızca 2 argüman olabilir
- Kodunuzu çalıştırmak için 500 saniyenin altında tutmaya çalışın.
- Boşluk konusunda endişelenmenize gerek yok
- Yalnızca ASCII yazdırılabilir karakterler kullanmalısınız .
İstisnalar yalnızca yazdırılamayan karakterler kullanan dillerdir (APL ve boşluk 2 örnektir).
puanlama:
- En az bayt kazanma sayısı
- Cevabınızda geçersiz ASCII yazdırılabilir karakterlerin bulunması, UTF-32'de kodlanan cevap olarak sayılır Kodlamanın
istisnası, cevabınızın karakterlerle sayılmasını sağlayacaktır . - Sadece işlev gövdesi önemlidir, dışında yaptığınız hiçbir şeyi saymayın
- Mahalle veya en yaygın kelimeleri temel alan bir tahmin sistemi yaparsanız% -30 bonusu
- İlk sayıya karşılık gelen her harf için yalnızca ilk 5 eşleşmeyi döndürürseniz% -20 büyüklük bonusu (örneğin: 245, 'a' ile başlayan 5 kelime, 'b' ile başlayan 5 kelime ve 'c' ile başlayan 5 kelime döndürür ).
Javascript kullanan bir uygulama örneği:
function f(phone, words)
{
var keypad=['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'];
var regex='';
for(var i=0,l=phone.length;i<l;i++)
{
regex+='['+keypad[phone[i]]+']';
}
var regexp=new RegExp('\\s('+regex+'[a-z]*)\\s','gi');
return words.match(regexp);
}
Çalıştırmak için liste bağlantısını açın ve çalıştırın: Örneğin:
f('9999',document.getElementsByTagName('pre')[0].innerText);
//returns [" Zyzzogeton "]
Bu örnek test edilmiş ve Windows 7 Home Edition 64 bit üzerindeki Opera 12.17 64 bit altında çalışmaktadır.