Meine persönliche Meinung zu den Google Foobar-Herausforderungen.
Einfaches Problem.
Gelöst durch Generieren und Speichern jeder Primzahl in einer Zeichenfolge und Rückgabe der Teilzeichenfolge ( n
bis n+5
), sobald wir n+5
Ziffern in der Zeichenfolge gespeichert haben, da dies die Zahl ist, nach der wir suchen.
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]
Ein weiteres einfaches Problem, und es hat mir viel Spaß gemacht, es in möglichst wenigen Zeilen zu lösen. Denn... warum nicht?
Gelöst durch Teilen der Zeichenfolge durch das Zeichen <
und Zählen, wie oft das Zeichen >
in jedem Element der Liste vorkommt. Erstellen Sie dann eine Liste mit den Indizes der Liste, jedoch in absteigender Reihenfolge, da dies die Häufigkeit ist, mit der jeder Mitarbeiter in jedem Abschnitt der Liste einem Mitarbeiter gegenübersteht, der in die andere Richtung geht.
Der letzte Schritt der Lösung besteht darin, jedes Element auf der Liste mit dem entsprechenden Element auf der Liste der Indizes zu multiplizieren (dies ergibt die Anzahl der Begegnungen jedes Mitarbeiters) und diese Zahl mit zwei zu multiplizieren, da jede Begegnung zwei Salutschüsse erzeugt.
Und wir geben die Summe all dieser Zahlen zurück (die Gesamtzahl der Grüße aller Mitarbeiter).
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