Amaç
Dize bitiştirmeyi tersine çevirmek için bir işlev oluşturun
Giriş
Birinin diğeri için çıkarılması gereken iki dize (alfanümerik + boşluklar).
- Çıkarılacak dizginin asla diğerinden daha büyük olmayacağını varsayabilirsiniz.
Çıktı
Çıkarma sonucu
Çıkarma
Bir dizgiyi başka bir dizgenin başlangıcından veya sonundan silmelisiniz. Dize başlangıçta ve sonunda mevcutsa, yalnızca hangisinin kaldırılacağı size ait olanı kaldırabilirsiniz.
Dize başlangıçta veya sonunda değilse veya tam bir eşleşme değilse, geçersiz bir çıkartmadır ve orijinal dizeyi çıkarmanız gerekir.
Test Kılıfları
Geçerli Çıkarma
'abcde','ab' -> 'cde'
'abcde','cde' -> 'ab'
'abab','ab' -> 'ab'
'abcab','ab' -> 'abc' or 'cab'
'ababcde','ab' -> 'abcde'
'acdbcd','cd' -> 'acdb'
'abcde','abcde' -> ''
'abcde','' -> 'abcde'
'','' -> ''
Geçersiz Çıkarma (orijinal dizeyi döndürür)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Geçersiz Giriş (ele alınması gerekmez)
'','a' -> ''
Bu kod-golf , yani bayttaki en kısa kod kazanır!
'abcde','bcd' -> 'abcde'
çözümümü
'ababcde', 'ab'
→ öneririm 'abcde'
. Bazı saf algoritmalar bu konuda başarısız.
cde
? Geçerli derken ne demek istiyorsun? Girdilerin geçerliliğini değerlendirmek zorunda mıyız yoksa geçersiz girdiler alamayacağımız anlamına mı geliyorsunuz?