Objektif
Buat fungsi untuk membalikkan rangkaian senar
Memasukkan
Dua string (spasi + alfanumerik), di mana satu harus dikurangkan untuk yang lain.
- Anda dapat mengasumsikan bahwa string yang akan dikurangkan tidak akan pernah lebih besar dari yang lainnya.
Keluaran
Hasil dari pengurangan
Pengurangan
Anda harus menghapus satu string dari awal atau akhir dari string lain. Jika string ada di awal dan di akhir, Anda hanya dapat menghapus satu, yang mana yang akan dihapus terserah Anda.
Jika string tidak di awal atau di akhir, atau tidak sama persis, itu adalah pengurangan yang tidak valid dan Anda harus menampilkan string asli.
Uji Kasus
Pengurangan Valid
'abcde','ab' -> 'cde'
'abcde','cde' -> 'ab'
'abab','ab' -> 'ab'
'abcab','ab' -> 'abc' or 'cab'
'ababcde','ab' -> 'abcde'
'acdbcd','cd' -> 'acdb'
'abcde','abcde' -> ''
'abcde','' -> 'abcde'
'','' -> ''
Pengurangan Tidak Valid (mengembalikan string asli)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Masukan Tidak Valid (tidak perlu ditangani)
'','a' -> ''
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
'abcde','bcd' -> 'abcde'
karena melanggar solusiku
'ababcde', 'ab'
→ 'abcde'
sebagai test case. Beberapa algoritma naif gagal pada yang satu itu.
cde
? Apa yang Anda maksud dengan valid? Apakah kita perlu menilai validitas input, atau maksud Anda bahwa kami tidak akan menerima input yang tidak valid?