Balikkan metode Format.
The Formatmetode kelas String (atau equivallent, sepertisprintf ) tersedia dalam banyak bahasa. Pada dasarnya dibutuhkan string "Format" yang mungkin berisi placeholder dengan beberapa format tambahan, dan nol atau lebih nilai yang akan dimasukkan daripada placeholder itu.
Tugas Anda adalah mengimplementasikan fungsi terbalik dalam bahasa pilihan Anda.
API
Nama metode harus berupa format1ataudeformat .
Memasukkan : Parameter 1 akan menjadi string "Format", seperti dalam metode format asli. Parameter ke-2 adalah string yang diurai (lihat contoh di bawah). Tidak ada parameter lain yang diperlukan atau diizinkan.
Keluaran : array (atau bahasa pilihan Anda) dari nilai-nilai yang diekstraksi sesuai dengan placeholder dalam format.
Penampung yang {0}, {1}, {2}, dll
Dalam hal format yang buruk Anda dapat melakukan kesalahan, atau mengembalikan apa pun yang Anda suka.
Dalam hal input tidak valid, Anda dapat melakukan kesalahan, atau mengembalikan apa pun yang Anda suka. Masukan tidak valid adalah sedemikian rupa sehingga tidak dapat dihasilkan oleh String.Format menggunakan format string yang sama, misalnya: '{0}{0}', 'AAB'.
Contohnya
deformat('{0} {1}', 'hello world') => ['hello', 'world']
deformat('http{0}://', 'https://') => ['s']
deformat('http{0}://', 'http://') => [''] // array of one item which is an empty string
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB']
Kemenduaan
Dalam hal ambiguitas Anda dapat mengembalikan jawaban yang sesuai. Sebagai contoh:
deformat('{0} {1}', 'Edsger W. Dijkstra')
// both ['Edsger', 'W. Dijkstra'] and ['Edsger W.', 'Dijkstra'] are applicable.
Beberapa Aturan Lagi
- Untuk membuatnya lebih mudah, tidak perlu benar-benar mendukung pemformatan. Anda bisa melupakan semua tentang angka nol di depan, titik desimal atau masalah pembulatan. Hanya menghasilkan nilai sebagai string.
- Untuk membuatnya non-sepele, Ekspresi Reguler tidak diperbolehkan .
- Anda tidak perlu menjaga kurung kurawal dalam input (mis. Parameter input kedua tidak akan mengandung
{s atau}s).
Kemenangan
Ini golf kode ! (harus dibaca sebagai "Ini Sparta!") fungsi yang benar memiliki kemenangan terpendek. Celah standar dilarang.
['', 'AAAA'], ['A', 'AA'],['AA', '']
deformat('{0}{1}{0}', 'ABBA') => ['', 'ABBA']? Jika demikian, ada solusi murah kecuali setiap string muncul setidaknya dua kali.
deformat('{0}_{1}_{0}', 'A_BB_A')?
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB'], bagaimana jika kita malah diberikandeformat('{0}{1}{0}', 'AAAA')?