Giriş
Son zamanlarda, Swype ile yazmaya alışığım .
Başlangıç mektubunuzdan bitiş mektubunuza düz bir çizgi çizerek veya tekrar eden harfleri atlayarak belirli kelimelerin üretilebileceğini fark ettim.
Örneğin balloon, aşağıdaki harfleri kaydırarak sözcüğü yazabilirim:
b> a> l> o> n.
Meydan okuma
En Kısa Swype Yolunu veya SSPbir dize yazmak için gereken minimum ayırt edilebilir çizgi parçası sayısı olarak tanımlayalım . Çizgi parçası, herhangi iki veya daha fazla harf arasındaki sürekli düz çizgidir. Yönteki herhangi bir değişiklik yeni bir çizgi parçasını başlatır - ancak bazı kelimeler yalnızca tek bir düz çizgi çizilerek kaydırılabilir.
Bu basit QWERTY klavye düzenini kullanın :
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
Yukarıdaki örnekte, kelime balloonbir olacaktır SSParasında 4aşağıdaki sekansı ayrıntılı olarak:
1) Start at `b` (line segments = 0)
2) slide to `a` (line segments = 1)
3) slide to `l` (line segments = 2)
4) slide to `o` (line segments = 3)
5) slide to `n` (line segments = 4)
Dize qwertysahip SSPbu kelimeyi Swyping yönün hiçbir değişiklik gereklidir çünkü = 1.
Giriş
a-zSTDIN, işlev bağımsız değişkeni veya komut satırı aracılığıyla herhangi birini içeren tek bir sözcük dizesi .
Çıktı
Dizeyi ntemsil eden sayı olan STDOUT, return veya en yakın dilinizle yazdırın SSP.
Çıkışta isteğe bağlı bir satırsonu. Standart boşluklara izin verilmedi. Bayt cinsinden en kısa gönderim kazanır.
notlar
- Yön değişikliği, yeni bir çizgi parçasını başlatır.
- Tekrar eden harfler sadece bir kez sayılır (örneğin:
bookkeeperolarak ele alınmalıdırbokeper). - Normalde Swpye, kaçırılan harfleri komşu harflere bakarak ve en iyi tahminini doldurarak düzeltir. Bu zorluk için, doğal dil artırımı, tahmine dayalı metin veya hata düzeltmesi olmadığını varsayın.
- Büyük harf
A-Zgirişleri, küçük harfli muadilleri gibi işlem görür. - Girişteki sayıları yok sayın
0-9. - Çapraz yolları izin verilir - kapaklar harfler bir düz çizgi olduğunu
o,k,nörneğin, olarak kabul1segmenti. Bu kural herhangi diyagonal eğimi için de geçerlidir (örneğin: harflerc,h,iuyumludur).
Örnekler
Input Output
---------------------
a 0
aa 0
aaaaaa 0
aaaaaabc 2
in 1
int 2
java 3
qwerty 1
chicago 5
balloon 4
BALLOON 4
typewriter 5
bookkeeper 6
stackexchange 11
2hello7 3
2HELLO7 3