###### tags `python-kata` # Python, kata e almorzo / Python, virtual kata y desayuno - 7ª Edición (Virtual Meetup) **¡¡ESTE DOCUMENTO SE ACTUALIZARÁ ANTES Y DURANTE EL EVENTO!!** Hola de nuevo! Debido a situación actual la sesión la realizaremos de manera virtual. Y ahora más que nunca, breves instrucciones a continuación para que todo vaya fluido! 1. Nos juntaremos en la sala virtual que publicaremos minutos antes del evento. 2. Actualizaremos este documento con un primer ejercicio a realizar de https://leetcode.com/ 3. Nos dividiremos en grupos de 2-3 personas para realizar el ejercicio. Uno de los participantes (driver/conductor) debe compartir pantalla mientra que el resto actuan como navegadores u observadores. 4. Resolveremos el problema en iteraciones de 10 minutos. 5. Al final cada iteración decideremos entre todos los grupos si damos finalizado el problema o continuamos iterando para refactorizar. 6. Finalizado el problema, retomaremos la reunión en la sala principal y copiaremos la solución en este documento en el espacio reservado para cada grupo. 8. Revisaremos y comentaremos soluciones de cada grupo. 9. Revisaremos soluciones de otros usuarios en Leetcode en Python, y en otros lenguajes. 10. Si queda tiempo volvemos al _Paso 2_. Además.. 1. Los grupos de 2-3 personas se reunirán en salas independientes y el conductor puede ir rotando en cada ejercicio. 1. Se puede acompañar de café, te, galletas, desayuno inglés...(recuerda teclear sin chocolate en los dedos) 1. No importa el nivel o la experiencia individual, lo importante es aprender todos de todos. 1. La reunión es informal y el objetivo es aprender pasando un buen rato! Anteriores ediciones: - [Primera Edición](https://hackmd.io/ZFqsaJQAQQGm8z2sPTwA3g) - [Segunda Edición](https://hackmd.io/FO4AHdfHTASNM_1ahFn8DQ) - [Tercera Edición](https://hackmd.io/-sF1xb0ASkC98ArsOgdItA?view) - [Cuarta Edición](https://hackmd.io/@aindustriosa/B1cQ0DdZU) - [Quinta Edición](https://hackmd.io/@aindustriosa/H1lc-qgG8) - [Sexta Edición](https://hackmd.io/@aindustriosa/H1sgaq9MI) ## Datos de acceso * URL Sala principal: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo * Contraseña: cuarentena ## Ejercicios * https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ * https://leetcode.com/problems/maximum-69-number/ ### Grupo 1 * Participantes: Rastersoft, Yoshua Lino * URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_1 _Código:_ ```python # Work in progress class Solution: def removeDuplicates(self, S: str) -> str: if len(S) < 2: return S while True: cambiado = False for a in (range(len(S) - 1)): c1 = S[a] c2 = S[a+1] if c1 == c2: S = S[:a] + S[a+2:] cambiado = True break if not cambiado: break return S ``` _Código:_ ```python # Work in progress class Solution: def maximum69Number (self, num: int) -> int: return int(str(num).replace("6", "9", 1)) ``` ### Grupo 2 * Participantes: Daniel, CyberMODEm * URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_2 _Código:_ ```python # Work in progress class Solution: def removeDuplicates(self, S: str) -> str: i = 1 while i < len(S): i = 1 while i < len(S): i += 1 if S[i] == S[i+1]: j = i+1 while S[i] = S[j+1]: j = j+1 S = S[:min(i-1, 0)] + S[min(j+1, len(S)):] return S ``` ```python class Solution: def maximum69Number (self, num: int) -> int: return int(str(num).replace('6', '9', 1)) ``` ### Grupo 3 * Participantes: Xurxo, Javier Lopez Pino * URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_3 Alex -> "no me deja veros/hablar en vuestra sala" _Código:_ ```python class Solution(object): def removeDuplicates(self, S): """ :type S: str :rtype: str """ result = " " for character in S: if (character == result[-1]): result = result[:-1] else: result = result + character return result[1:] class Solution(object): def maximum69Number (self, num): strNum = str (num) posiblesResultados = [] for x in range (0, len(strNum)): tmp = strNum if (strNum[x] == '6'): tmp = strNum[:x-1] + '9' + strNum[x:] else: tmp = strNum[:x-1] + '6' + strNum[x:] posiblesResultados.append(tmp) return int(max(posiblesResultados)) ``` ### Grupo 4 * Participantes: Tomás Dias Almeida * URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_4 _Código:_ ```python # work in progress # idea: stack class Solution(object): def removeDuplicates(self, S): keep = [' '] myList = S.split() for c in myList: elem = keep.pop() if c != elem: keep.append(elem) keep.append(c) return ''.join([str(elem) for elem in keep]) ``` ```python # change first 6 to 9, concat the rest # class Solution(object): def maximum69Number (self, num): """ :type num: int :rtype: int """ result = "" S = str(num) changed = False for character in S: if character == '6' and changed == False: result += '9' changed = True else: result += character return result class Solution(object): def maximum69Number (self, num): """ :type num: int :rtype: int """ newNum = 0 divisor = 1000 while (divisor != 0): numPosition = num // divisor if (numPosition == 6): newNum = newNum + (9*divisor) + (num%divisor) return newNum else: newNum = newNum + (numPosition *divisor) num = (num%divisor) divisor = divisor // 10 return newNum ``` ## FRIKADAS ## Otros comentarios