Meeesesessessessessessessess upp teeexexextext adlı kişiyi düzelt


38

Bu Pazartesi Mini Golf # 6 esinlenerek : Meeesesessess upp teeexexextext

Arka fon

ETHproductions her zamanki web sayfasına metin girmekte zorlanıyor. Ne zaman rakam ya da harf kullansa, metin ölçülecek şekilde yazılır. Göreviniz normal davranışa ulaşmak için ona yazmanıza yardımcı olmak.

Dönüşüm

Dönüştürme, alfasayısal [0-9A-Za-z]olmayan karakterler tarafından sınırlandırılmış alfasayısal ( ) karakterlerin çalışmasını etkiler . Aşağıdaki örnekte, ilk satır ikinciye dönüştürülecekti (diğer satırlar dönüşümün dağılımını göstermektedir)

An12num:
Annn1n12n12nn12nn12nun12nun12numn12num
A
 nn
   n1
     n12
        n12nn12n
                n12nun12nu
                          n12numn12num

Özellikle, bir koşuda birinciden sonraki herhangi bir alfasayısal karakter , ilk karakter hariç, şimdiye kadar tüm koşuya dönüştürülür . Ayrıca, karakter bir harf ise (bir rakamdan ziyade), karakter iki kez çalıştırmaya dönüştürülür .

Neyse ki, geri al son karakteri siler ve ayrıca çalışmanın başlangıcını sıfırlar.

Görev

Bu sefer senin görevin dönüşümü yapmak değil. Bunun yerine, bir giriş dizesi verildiğinde, dönüştürüldüğü takdirde girişle sonuçlanacak şifreli bir metin döndürmeniz gerekir. Çıktı, mümkün olduğu kadar kısa olmalıdır, \<char>tek bir karakter olarak sayılmalıdır.

Metin aşağıdaki şekilde kodlanmıştır:

\                   -> \\
backspace character -> \b
linefeed            -> \n

STDIN (veya en yakın alternatif), komut satırı argümanı veya işlev argümanı yoluyla giriş alarak ve sonucu STDOUT (veya en yakın alternatif), fonksiyon dönüş değeri veya function (out) parametresi ile çıktı alarak bir program veya işlev yazabilirsiniz.

Test durumları

Her test durumu iki satırdır, ilk giriş, ikinci çıkış.

Heeeeeelp me. It shouldn't be messed up.
Hee \blp\b me\b. It\b sh\bou\bld\bn't be\b me\bss\bed\b up\b.

alert("Hello, world!");
al\ber\bt("He\bll\bo, wo\brl\bd!");

1223234234523456
123456

6
İyi tanımlanmış, ancak neden cevap yok?
Akangka

1
Bir şekilde bunu özledim; güzel spin-off! Belki daha sonra bir cevap yazmaya çalışacağım.
ETHProductions

Bu bana bir arkadaşımın UDP aracılığıyla gönderdiği zamanı hatırlatıyor
TRGWII

1
Sanırım son sınav durumunun düzeltilmesi gerekiyor. İlk karakteri ( 1her seferinde) koşuya dahil edersiniz .
Leif Willerts, 28:15

Gerçekten ne yapmam gerektiğini anlamıyorum ... Üzgünüm. Bazı girdi ve çıktıları ekleyebilir ve açıklamaya bazı örnekler ekleyebilir misiniz? Üzgünüm.
Yassin Hajaj

Yanıtlar:


10

CJam, 207

{_,1>{:E1<_0{:I2$,+E=:C+:R1>C'9>)*+:P,E,<{EP#{L0}{PRI)1}?}{PE#L{R8cP,E,-*+}?0}?}g}&}:U;LqS+'a+{_'[,_el^A,s+&,V={+}{s\V!:V{L{:BU_aL?B,,1>Bf{_2$<U_{_W=8>S8c+*+\@>j+}{?;}?}+{,}$0=}j}|\}?}%s'\8cN++'\"\bn"f+er-2<

Çevrimiçi deneyin

Açıklama:

Neredeyse bunu yazmayı unuttum: p

Sorun birkaç adımda çözüldü:

  • metin, alfasayısal karakterlerden oluşan bir kaç (kelimelerin adını söyleyelim) ve alfasayısal olmayan karakterlerin (sözcüksiz)
  • kelimeler olmayanlar olduğu gibi basılır ve kelimeler sabittir.
  • Bir kelimeyi sabitlemek, tekrar tekrar yapılır (notlandırmak suretiyle): kelimeyi mümkün olan her şekilde (boş 2. parça dahil) 2 parçaya ayırın, ilk ana parçayı serbest bırakmaya çalışın (aşağıya bakın), 2. parçayı düzeltin ve sonuçları bir boşlukla birleştirin - Gerekirse geri al; en kısa alt çözümü al
  • bir öbeğin değerlendirilmemesi, muhtemelen bazı geri boşlukları (ancak ortada geri boşlukları olmayan) takip eden minimum miktarda alfanümerik karakter dizisi bulmak anlamına gelir; basit açgözlü bir algoritma ile yapılır, soldan sağa doğru, değerlenmemiş dize ve karışık halini paralel olarak inşa eder ve her adımda bir sonraki gerekli karakteri belirler; bazı parçalar değerlendirilemez

1
İnek ... bir CJam programından ibaret! İyi iş.
ETHProductions
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.