GoogleFoobar
1.0.0
我个人对 Google Foobar 挑战的看法。
简单的问题。
解决方法是在字符串上生成并存储每个素数,一旦我们在字符串上存储了n+5
数字,就返回子字符串( n
到n+5
),因为这就是我们要查找的数字。
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]
另一个简单的问题,我用最少的行数解决了这个问题,并获得了很多乐趣。因为...为什么不呢?
通过用 char <
分割字符串并计算 char >
在列表的每个元素上出现的次数来解决。然后,创建一个包含列表索引的列表,但按降序排列,因为这是列表每个部分中的每个员工面对另一个方向行走的员工的次数。
解决方案的最后一步是将列表中的每个元素与其索引列表中对应的元素相乘(这给出了每个员工的相遇次数)并将该数字乘以二,因为每次相遇都会生成两次致敬。
我们返回所有这些数字的总和(所有员工的敬礼总数)。
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