[Leetcode] 0424. Reemplazo del carácter más largo y repetido

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github

Tabla de contenido

Medio


Se le proporciona una cadena s y un numero entero kPuede elegir cualquier carácter de la cadena y cambiarlo por cualquier otro carácter en mayúsculas del inglés. Puede realizar esta operación como máximo k veces.

Devolver la longitud de la subcadena más larga que contiene la misma letra que puede obtener después de realizar las operaciones anteriores.

 

Ejemplo 1:

Aporte: s = "ABAB", k = 2
Producción: 4
Explicación: Reemplace las dos “A” por dos “B” o viceversa.

Ejemplo 2:

Aporte: s = "AABABBA", k = 1
Producción: 4
Explicación: Reemplace la "A" del medio por "B" y forme "AABBBBA". La subcadena "BBBB" tiene las letras repetidas más largas, que son 4. También pueden existir otras formas de lograr esta respuesta.

 

Restricciones:

  • 1 <= longitud s. <= 10 5
  • s Consta únicamente de letras mayúsculas en inglés.
  • 0 <= k <= s.longitud

Pitón

				
					Complejidad de tiempo #: O(n) Complejidad de espacio #: O(1) de colecciones importar clase defaultdict Solución: def characterReplacement(self, s: str, k: int) -> int: result = 0 left = right = 0 freq = defaultdict(int) mostFreqChar = 0 para derecha en rango(len(s)): freq[s[derecha]] += 1 mostFreqChar = max(mostFreqChar, freq[s[derecha]]) si derecha - izquierda + 1 - mostFreqChar > k: freq[s[izquierda]] -= 1 izquierda += 1 resultado = max(resultado, derecha - izquierda + 1) devolver resultado s = "AABABBA" k = 1 print(Solution().characterReplacement(s, k ))
				
			
es_ESEspañol