Dies ist die zweite in einer Reihe, die dritte ist Zwei Straßen in einem gelben Wald auseinander (Teil 3)
Dies basiert auf zwei Straßen, die in einem gelben Wald auseinander laufen (Teil 1) , eine frühere Herausforderung von mir. Es wurde ziemlich gut angenommen, aber es war auch ziemlich trivial (eine Java-Antwort in 52 Bytes!) Also habe ich etwas komplexeres gemacht ...
Die Inspiration
Diese Herausforderung ist von Robert Frosts berühmtem Gedicht "The Road Not Taken" inspiriert:
Zwei Straßen gingen in einem gelben Wald auseinander.
Tut mir leid, dass ich nicht beide fahren konnte.
Und ich war ein Reisender, lange stand ich da
und schaute einen herunter, so weit ich konnte
.... 2 Absätze gekürzt ...
Ich werde das mit einem Seufzer erzählen.
Irgendwo in Ewigkeit:
Zwei Straßen gingen in einem Wald auseinander, und ich -
ich nahm den weniger befahrenen,
und das hat den Unterschied ausgemacht.
Beachten Sie die vorletzte Zeile I took the one less traveled by,
. Ihr Ziel ist es, die am wenigsten befahrene Straße in Ihrer Zeichenfolge zu finden. Sie müssen einen von 2 Werten ausgeben, die sich voneinander unterscheiden und angeben, in welche Richtung Sie abbiegen sollen, um die Straße zu nehmen, auf der weniger Verkehr herrscht. Sobald sich die Straße gabelt (die Spur der Sechsecke ändert sich in Zahlen), sind Sie an der Kreuzung. Von dort aus gibt es 2 Pfade, die aus Ziffern bestehen. Der Pfad, dessen Ziffern die niedrigste Summe haben, ist die Straße, die nicht genommen wurde. Beachten Sie, dass die nicht genommene Straße möglicherweise einen größeren Pfad hat, aber eine geringere Pfadsumme. Hier sind einige Beispiele / Testfälle aus einem Programm, das "left" oder "right" für den nicht genommenen Pfad ausgibt:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
Dinge, die anzunehmen und zu erinnern sind
- Es wird immer 2 Wege geben. Nicht mehr und nicht weniger.
- Sie können zeilenweise eine Eingabe von STDIN, eine Zeichenfolge mit LF-Zeichen oder eine Zeichenfolge mit einem literalen Backslash und einem n übernehmen. Wenn Sie auf andere Weise Eingaben benötigen, bitten Sie in den Kommentaren um Zustimmung.
- Sie müssen sich keine Gedanken über ungültige Eingaben oder verknüpfte Pfade machen. Diese werden niemals in Ihr Programm / Ihre Funktion eingegeben.
- Die Eingabe kann eine beliebige Länge in Breite oder Höhe haben, die unter der Zeichenfolgenbeschränkung Ihrer Sprache liegt.
- Es wird niemals eine
#
und eine Zahl in derselben Zeile geben. - Alle Ziffern im Pfad sind positive ganze Zahlen von 0 bis 9.
- Die Eingabe oder Ausgabe mit einem nachgestellten Zeilenumbruch ist zulässig.
- Siehe meine JS ES6 Antwort unten für ein Beispiel.
- Es wird immer mindestens 1 Leerzeichen zwischen den beiden Pfaden geben.
- Die beiden Pfade haben immer die gleiche Höhe für jede Karte, können jedoch auf anderen Karten unterschiedlich sein.
- Wenn Sie über einen bestimmten Testfall verwirrt sind, teilen Sie mir dies bitte mit.
- 1111 wird als 1 + 1 + 1 + 1 = 4 interpretiert, nicht als 1111 = 1111. Die Karte besteht aus einer Reihe von einstelligen Zahlen, nicht aus Zahlen beliebiger Länge.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
- Standardlücken verboten
Wenn Sie Fragen zu dieser Herausforderung haben, fragen Sie mich in den Kommentaren und viel Glück!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
in Ihre Konsole einfügen!