Mi opinión personal sobre los desafíos de Google Foobar.
Problema fácil.
Resuelto generando y almacenando cada número primo en una cadena, devolviendo la subcadena ( n
a n+5
) una vez que hayamos almacenado n+5
dígitos en la cadena, ya que ese es el número que estamos buscando.
algorithm prime_seq_substring is
input: Index N of first digit on the substring
output: String of 5 digits of prime numbers
for each prime in range[2..30000] do
concat prime to prime_seq
if length of prime_seq >= N+5 do
break
return prime_seq[N..N+5]
Otro problema fácil, y me divertí mucho resolviéndolo en el menor número de líneas. Porque… ¿por qué no?.
Resuelto dividiendo la cadena por char <
y contando el número de veces que char >
aparece en cada elemento de la lista. Luego, cree una lista con los índices de la lista pero en orden descendente, ya que esa es la cantidad de veces que cada empleado en cada sección de la lista se enfrentará a un empleado que camina en la otra dirección.
El último tramo de la solución es multiplicar cada elemento de la lista con su elemento correspondiente en la lista de índices (esto da el número de encuentros de cada empleado) y multiplicar este número por dos, ya que cada encuentro genera dos saludos.
Y devolvemos la suma de todos estos números (el número total de saludos de todos los empleados).
algorithms salutes_solution is
input: String S representing the employees
output: Number of salutes performed by the employees
for each section in (S split by '<') do
concat (number of '>' in section) to sec_list
index_list := (length of sec_list)..0
for I in range[0..(length of sec_list)] do
concat ( (elem I of sec_list) * (elem I of index_list) * 2) to salutes_list
return sum of elements in salutes_list