¡¡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!
- Nos juntaremos en la sala virtual que publicaremos minutos antes del evento.
- Actualizaremos este documento con un primer ejercicio a realizar de https://leetcode.com/
- 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.
- Resolveremos el problema en iteraciones de 10 minutos.
- Al final cada iteración decideremos entre todos los grupos si damos finalizado el problema o continuamos iterando para refactorizar.
- 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.
- Revisaremos y comentaremos soluciones de cada grupo.
- Revisaremos soluciones de otros usuarios en Leetcode en Python, y en otros lenguajes.
- Si queda tiempo volvemos al Paso 2.
Además..
- Los grupos de 2-3 personas se reunirán en salas independientes y el conductor puede ir rotando en cada ejercicio.
- Se puede acompañar de café, te, galletas, desayuno inglés...(recuerda teclear sin chocolate en los dedos)
- No importa el nivel o la experiencia individual, lo importante es aprender todos de todos.
- La reunión es informal y el objetivo es aprender pasando un buen rato!
Anteriores ediciones:
- URL Sala principal: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo
- Contraseña: cuarentena
- https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/
- https://leetcode.com/problems/maximum-69-number/
- Participantes: Rastersoft, Yoshua Lino
- URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_1
Código:
# 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:
# Work in progress
class Solution:
def maximum69Number (self, num: int) -> int:
return int(str(num).replace("6", "9", 1))
- Participantes: Daniel, CyberMODEm
- URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_2
Código:
# 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
class Solution:
def maximum69Number (self, num: int) -> int:
return int(str(num).replace('6', '9', 1))
- 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:
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))
- Participantes: Tomás Dias Almeida
- URL Sala: https://meet.jit.si/AIndustriosa__PythonKataEAlmorzo_grupo_4
Código:
# 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])
# 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