Menu
CoddyTech

Palindrome Partitioning

Palindrom terbaca sama dari kiri ke kanan maupun dari kanan ke kiri. Potong string s menjadi satu bagian atau lebih sehingga setiap bagian merupakan palindrom, lalu kembalikan semua cara untuk melakukannya.

Tulis setiap pemisahan sebagai bagian-bagiannya secara berurutan, dipisahkan dengan |: memotong aab menjadi a, a, dan b menghasilkan a|a|b. Kembalikan pemisahan dalam urutan menaik berdasarkan perbandingan kode karakter, sehingga | berada setelah semua huruf kecil.

Fungsi

partition(s: string) → string-array
sstring
string huruf kecil yang akan dipotong
Mengembalikanstring-array
setiap pembagian s menjadi palindrom, ditulis dengan | di antara bagian-bagiannya, dalam urutan menaik

Batasan

  • 1 ≤ s.length ≤ 11
  • s hanya berisi huruf kecil bahasa Inggris.
  • Sebuah string yang terdiri dari 11 huruf yang sama memiliki 1,024 pemisahan, jawaban terbesar.

Contoh

Input
s = "aab"
Output
["aa|b", "a|a|b"]
Penjelasan
Hanya aa|b dan a|a|b yang memiliki semua bagian palindromik; a|ab gagal pada ab. aa|b berada di urutan pertama: pada karakter kedua, ada a sedangkan yang lainnya memiliki |, yang diurutkan setelah setiap huruf.
challenge icon

Pertanyaan lanjutan

Bisakah kamu menemukan jumlah pemotongan paling sedikit untuk membagi s menjadi palindrom, untuk string dengan panjang hingga 2.000?

Reset kode
def partition(s):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

s = "aab"

Output yang diharapkan

["aa|b", "a|a|b"]