<prompt> Kuna kadi kadhaa zilizopangwa kwa safu, na kila kadi ina nambari inayohusishwa ya alama. Alama zimetolewa katika safu kamili cardPoints.Kwa hatua moja, unaweza kuchukua kadi moja tangu mwanzo au kutoka mwisho wa safu. Lazima uchukue kadi k haswa.Alama yako ni jumla ya pointi za kadi ulizochukua.Kwa kuzingatia mkusanyiko kamili Points za kadi na nambari k, rudisha _kiwango cha juu zaidi cha alama_ unayoweza kupata.Mfano wa 1:Ingizo: Pointi za kadi 1,2,3,4,5,6,1, k 3Pato: 12Maelezo: Baada ya hatua ya kwanza, alama zako zitakuwa 1 kila wakati. Hata hivyo, kuchagua kadi iliyo kulia zaidi kwanza kutaongeza alama zako zote. Mkakati bora ni kuchukua kadi tatu upande wa kulia, kutoa alama ya mwisho ya 1 6 5 12.Mfano wa 2:Ingizo: Pointi za kadi 2,2,2, k 2Pato: 4Maelezo: Bila kujali kadi mbili unazochukua, alama zako zitakuwa 4 kila wakati.Mfano wa 3:Ingizo: Pointi za kadi 9,7,7,9,7,7,9, k 7Pato: 55Maelezo: Inabidi uchukue kadi zote. Alama yako ni jumla ya pointi za kadi zote.Vikwazo: 1 cardPoints.length 105 1 kadiPointi 104 1 k cardPoints.length1. Idadi ya herufi za kipekee katika kamba ndogo lazima isizidi k. 2. Mstari mdogo lazima usiwe na zaidi ya tukio moja la herufi sawa. 3. Urefu wa kamba ndogo lazima usizidi urefu wa kamba asili.  <response>: def max_substring_occurrencess: str, k: int - int: mara kwa mara res 0 kwa c katika s: freqc freq.getc, 0 1 ikiwa lenfreq k: res maxres, freqc rudisha 0 ikiwa lenfreq k else res 