Menu
CoddyTech

Palindrome Partitioning

Palindrom, soldan sağa ve sağdan sola aynı şekilde okunur. s dizgesini, her parçası bir palindrom olacak şekilde bir veya daha fazla parçaya böl ve bunu yapmanın tüm yollarını döndür.

Her bölmeyi parçalarını sırayla | ile birleştirerek yaz: aab dizgesini a, a ve b olarak bölmek a|a|b sonucunu verir. Bölmeleri, karakter kodlarını karşılaştırarak artan sırada döndür; böylece |, tüm küçük harflerden sonra gelir.

Fonksiyon

partition(s: string) → string-array
sstring
kesilecek küçük harflerden oluşan dize
Döndürürstring-array
s'nin palindromlara bölünmelerinin her biri, parçaların arasına | konularak, artan sırada

Kısıtlar

  • 1 ≤ s.length ≤ 11
  • s yalnızca küçük harfli İngilizce harfler içerir.
  • 11 aynı harften oluşan bir dizenin 1,024 bölünmesi vardır; bu en büyük yanıttır.

Örnekler

Girdi
s = "aab"
Çıktı
["aa|b", "a|a|b"]
Açıklama
Yalnızca aa|b ve a|a|b parçalarının tümü palindromiktir; a|ab, ab parçasında başarısız olur. aa|b önce sıralanır: ikinci karakterde, diğerinde | varken onda a vardır ve | tüm harflerden sonra sıralanır.
challenge icon

Ek soru

Uzunluğu 2,000'e kadar olan dizgiler için s'yi palindromlara ayıran en az kesme sayısını bulabilir misin?

Kodu sıfırla
def partition(s):
    # Kodu buraya yazın

Test #1

Test #2

Argüman

s = "aab"

Beklenen Çıktı

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