Introducción

1

¿Ya tomaste el Curso Avanzado de Algoritmos: Patrones de Arrays y Strings?

Lista Enlazada

2

Estructura de datos: Lista Enlazada

3

Programando listas enlazadas con Java

4

Cómo Invertir una Lista Enlazada

5

Odd Even Linked List: análisis del problema

6

Solución de Odd Even Linked List

7

Playground: Odd Even Liked List

8

Programando Odd Even Linked List con C++

9

Linked List Cycle: análisis del problema

10

Solución de Linked List Cycle

11

Playground: Linked List Cycle

12

Programando Linked List Cycle con Python

13

Palindrome Linked List: análisis del problema

14

Solución de Palindrome Linked List

15

Playground: Palindrome Linked List

16

Programando Palindrome Linked List con Java

17

Reorder List: análisis del problema

18

Solución de Reorder List

19

Programando Reorder List con JavaScript

20

Playground: Reorder List Without Repeated Values

21

Reto: LRU Caché

22

Ejercicios Prácticos con Listas Enlazadas y Historial de Navegador

23

Operaciones con Listas Enlazadas: Suma, Intercambio y Navegador

Pilas y colas

24

Estructura de datos: Pilas y Colas

25

Paréntesis Válido: análisis del problema

26

Solución de Paréntesis Válido

27

Playground: Paréntesis Válido

28

Programando Paréntesis Válido con C++

29

Comparación de Cadenas con Backspaces

Colas de prioridad

30

Estructura de datos: Colas de Prioridad

31

K Closest Points to Origin: análisis del problema

32

Solución de K Closest Points to Origin

33

Playground: K Closest Points to Origin

34

Programando K Closest Points to Origin con Python

35

Reorganize String: análisis del problema

36

Solución de Reorganize String

37

Playground: Reorganize String

38

Programando Reorganize String con Python

39

Colas de Prioridad: Ejercicios Prácticos y Soluciones

40

Colas de Prioridad y Gestión de Eventos

Próximos pasos

41

Toma el Curso Avanzado de Algoritmos: Grafos y Árboles

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Playground: Reorganize String

37/41

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Solución utilizando el patrón 2 apuntadores: ```python def reorganizeString(text: str) -> str: left = 0 right = 1 detected_repeated_chars = False text = list(text) while left < len(text) and right < len(text): left_char, right_char = text[left], text[right] if left_char != right_char: if detected_repeated_chars: text[left + 1], text[right] = right_char, left_char detected_repeated_chars = False left += 1 right = left + 1 else: detected_repeated_chars = True right += 1 if detected_repeated_chars: return '' return "".join(text) response = reorganizeString("aacab") print(response) response = reorganizeString("aaab") print(response) ```
propuesta: `def reorganizeString(text: str) -> str: frequency_characters = {} s_len_half = (len(text) + 1) // 2 for char in text: frequency_characters[char] = frequency_characters.get(char, 0) + 1 if frequency_characters[char] > s_len_half: return ""` ` max_heap = [] for char, freq in frequency_characters.items(): heapq.heappush(max_heap, (-freq, char))` ` result = [] prev_char = None prev_freq = 0` ` while max_heap: freq, char = heapq.heappop(max_heap) result.append(char)` ` if prev_freq < 0: heapq.heappush(max_heap, (prev_freq, prev_char))` ` prev_char = char prev_freq = freq + 1` ` return "".join(result)`
Mi solución: ![](https://static.platzi.com/media/user_upload/imagen-affcf1c2-b6c2-4a89-91e1-c64c899a741f.jpg) ![](https://static.platzi.com/media/user_upload/imagen-101e36f8-3733-4e48-9c46-0dd68a5542d9.jpg) ![](https://static.platzi.com/media/user_upload/imagen-399713dd-296f-4ccf-a784-3aa269158c18.jpg)
Mi posible solución: ![](https://static.platzi.com/media/user_upload/image-1b9148aa-d5b9-4751-99b6-a0064d7f22af.jpg)
undefined