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 SSP
bir 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 balloon
bir olacaktır SSP
arasında 4
aş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 qwerty
sahip SSP
bu kelimeyi Swyping yönün hiçbir değişiklik gereklidir çünkü = 1.
Giriş
a-z
STDIN, 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 n
temsil 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:
bookkeeper
olarak 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-Z
giriş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 kabul1
segmenti. Bu kural herhangi diyagonal eğimi için de geçerlidir (örneğin: harflerc
,h
,i
uyumludur).
Ö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