Beruflich Dokumente
Kultur Dokumente
Lassen Sie die FunktionFirstReverse (str) den übergebenen str -Parameter nehmen und den
String in umgekehrter Reihenfolge zurückgeben. Zum Beispiel: Wenn die Eingabezeichenfolge "Hello
World and Coders" ist, sollte Ihr Programm die Zeichenfolge sredoC dna dlroW olleH zurückgeben.
Beispiele
Input: „coderbyte“
Output: etybredoc
funktion FirstReverse(str) {
return newString;
}
funktion FirstReverse(str) {
// code goes here
return str.split('').reverse().join('');
Lassen Sie die FunktionFirstFactorial (num) den übergebenen Parameter num übernehmen
und das Faktorielle davon zurückgeben. Zum Beispiel: Wenn num = 4, dann sollte Ihr Programm
zurückgeben (4 * 3 * 2 * 1) = 24. Für die Testfälle liegt der Bereich zwischen 1 und 18 und die Eingabe
ist immer eine ganze Zahl.
Beispiele
Eingang: 4
Ausgang: 24
Eingang: 8
Ausgang: 40320
funktion FirstFactorial(num) {
let factorial = 1;
faktorielle Rückgabe;
funktion FirstFactorial(num) {
let answer = 1;
for (let index = 1; index <= num; index++) {
answer *= index;
}
antwort zurückgeben;
Längstes Wort
Lassen Sie die FunktionLongestWord (sen) den übergebenen sen-Parameter nehmen und das
größte Wort in der Zeichenfolge zurückgeben. Wenn es zwei oder mehr Wörter gibt, die die gleiche
Länge haben, geben Sie das erste Wort aus der Zeichenfolge mit dieser Länge zurück. Satzzeichen
ignorieren und davon ausgehen, dass sen nicht leer ist.
Beispiele
function LongestWord(sen) {
sen = sen.trim();
sen = sen.replace(/[^a-zA-Zsd]/g, '');
return arr.shift();
function LongestWord(sen) {
let validCharacters =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
let maxLength = 0;
let longestWord = '';
}
}
return longestWord;
function LongestWord(sen) {
var trimmed = sen.replace(/[^\w]/g, ' ');
var words = trimmed.split(/\s+/);
var longestWord = words.sort(function(a, b) {return b.length - a.length;})[0];
return longestWord;
}
Lassen Sie die Funktion LetterChanges (str) den übergebenen Parameter str mit dem folgenden
Algorithmus ändern. Ersetzen Sie jeden Buchstaben in der Zeichenfolge durch den folgenden
Buchstaben im Alphabet (d. h. c wird zu d, z wird zu a). Dann jeden Vokal in dieser neuen Zeichenfolge
(a, e, i, o, u) groß schreiben und schließlich diese modifizierte Zeichenfolge zurückgeben.
Beispiele
Eingabe: "Hallo*3"
Ausgabe: Ifmmp*3
Input: „Fun Times!“
Ausgabe: gvO Ujnft!
funktion LetterChanges(str) {
str = str.trim().toLowerCase();
var len = str.length;
var newStr = '';
funktion LetterChanges(str) {
let validCharacters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
// Vokale kapitulieren
for (let i = 0; i < newString.length; i++) {
if (vokale.includes(newString[i])) {
finalString += newString[i].toUpperCase();
} else {
finalString += newString[i];
}
}
return finalString;
funktion LetterChanges(str) {
str = str.replace(/[a-zA-Z]/g, Funktion(ch) {
if (ch === 'z') return 'a';
else if (ch === 'Z') return 'A';
else return String.fromCharCode(ch.charCodeAt(0) + 1);
});
Lassen Sie die FunktionSimpleAdding (num) alle Zahlen von 1 bis num addieren. Zum Beispiel:
Wenn die Eingabe 4 ist, dann sollte Ihr Programm 10 zurückgeben, weil 1 + 2 + 3 + 4 = 10. Für die
Testfälle wird der Parameter num eine beliebige Zahl von 1 bis 1000 sein.
Beispiele
Eingang: 12
Ausgang: 78
Eingang: 140
Ausgang: 9870
funktion SimpleAdding(num) {
if (num === 1) {
return 1;
}
else {
return num + SimpleAdding(num -1);
}
}
funktion SimpleAdding(num) {
let sum = 0;
for (i = 1; i <= num; i++) {
sum += i;
}
rücksumme;
funktion SimpleAdding(num) {
Großbuchstaben
Beispiele
funktion LetterCapitalize(str) {
return str;
funktion LetterCapitalize(str) {
let newString = '';
for (let i = 0, newWord = true; i < str.length; i++) {
if (newWord) {
newString += str[i].toUpperCase();
} else {
newString += str[i];
}
return newString;
}
funktion LetterCapitalize(str) {
Einfache Symbole
Lassen Sie die Funktion SimpleSymbols(str) den übergebenen Parameter str übernehmen und
bestimmen Sie, ob es sich um eine akzeptable Sequenz handelt, indem Sie entweder die
Zeichenfolge true oder false zurückgeben. Der Parameter str setzt sich aus + und = Symbolen mit
mehreren Zeichen dazwischen zusammen (d. h. ++d+= ==+c + +==a), und damit die Zeichenfolge wahr
ist, muss jeder Buchstabe von einem + Symbol umgeben sein. Die Zeichenfolge auf der linken Seite
wäre also falsch. Die Zeichenfolge ist nicht leer und hat mindestens einen Buchstaben.
Beispiele
Input: "+d+=3=+s+"
Output: true
Eingabe: "f++d+"
Ausgabe: falsch
funktion SimpleSymbols(str) {
if (/^[a-zA-Z]/.test(str) || /[a-zA-Z]$/.test(str)) {
return false;
}
else if (/[^+][a-zA-Z]/.test(str) || /[a-zA-Z][^+]/.test(str)) {
return false;
}
else {
return true;
}
funktion SimpleSymbols(str) {
funktion SimpleSymbols(str) {
Check Nums
Lassen Sie die FunktionCheckNums (num1,num2) beide übergebenen Parameter übernehmen und
die Zeichenfolge true zurückgeben, wenn num2 größer als num1 ist, andernfalls wird die
Zeichenfolge false zurückgegeben. Wenn die Parameterwerte gleich sind, geben Sie die Zeichenfolge -1
zurück.
Beispiele
HERAUSFORDERUNG ANZEIGEN
funktion CheckNums(num1,num2) {
if (num1 == num2) {
return "-1";
}
else {
return (num2 > num1);
}
}
funktion CheckNums(num1,num2) {
funktion CheckNums(num1,num2) {
Zeitkonvertierung
Lassen Sie die Funktion TimeConvert (num) den übergebenen num -Parameter nehmen und die
Anzahl der Stunden und Minuten zurückgeben, in die der Parameter konvertiert wird (d.
h. wenn num = 63, sollte die Ausgabe 1:3 sein). Trennen Sie die Anzahl der Stunden und Minuten mit
einem Doppelpunkt.
Beispiele
Eingang: 126
Ausgang: 2:6
Eingang: 45
Ausgang: 0:45
funktion TimeConvert(num) {
var hours = Math.floor(num/60);
var minutes = num % 60;
var str = hours + ":" + minutes;
return str;
funktion TimeConvert(num) {
funktion TimeConvert(num) {
Beispiele
Eingang: "coderbyte"
Ausgang: bcdeeorty
Eingabe: „hooplah“
Ausgabe: ahhloop
funktion AlphabetSoup(str) {
rückgabeergebnis;
funktion AlphabetSoup(str) {
funktion AlphabetSoup(str) {
AB-Prüfung
Lassen Sie die Funktion ABCheck (str) den übergebenen Parameter str übernehmen und die
Zeichenfolge true zurückgeben, wenn die Zeichen a und b mindestens einmal an genau 3 Stellen in der
Zeichenfolge getrennt sind (d. h. "lane borrowed" würde zu true führen, da zwischen a und b genau drei
Zeichen liegen). Andernfalls wird die Zeichenfolge false zurückgegeben.
Beispiele
patt = /(a...b|b...a)/
return patt.test(str);
function ABCheck(str) {
if (str.length < 5) {
return false;
}
console.log(str.length);
return false;
function ABCheck(str) {
Beispiele
Eingabe: "Hallo"
Ausgabe: 2
Eingang: "Coderbyte"
Ausgang: 3
function VowelCount(str) {
if (arr == null) {
return 0;
}
else {
return arr.length;
}
}
function VowelCount(str) {
function VowelCount(str) {
Word Count
Lassen Sie die Funktion WordCount(str) den übergebenen String-Parameter nehmen und die
Anzahl der Wörter zurückgeben, die der String enthält (z. B. "Niemals zerkleinerten Weizen oder
Kuchen essen" würde 6 zurückgeben). Wörter werden durch einzelne Leerzeichen getrennt.
Beispiele
antwort zurückgeben;
funktion WordCount(str) {
return str.split(' ').length;
}
funktion WordCount(str) {
Ex Oh
Lassen Sie die FunktionExOh (str) den übergebenen Parameter str übernehmen und die
Zeichenfolge true zurückgeben, wenn es eine gleiche Anzahl von x und o gibt, andernfalls geben Sie die
Zeichenfolge false zurück. Nur diese beiden Buchstaben werden in die Zeichenfolge eingegeben, keine
Satzzeichen oder Zahlen. Zum Beispiel: Wenn str "xooxxxxooxo" ist, dann sollte die
Ausgabe false zurückgeben, weil es 6 x und 5 o gibt.
Beispiele
Input: "xooxxo"
Output: true
Eingang: "x"
Ausgang: false
funktion ExOh(str) {
var regExPatternX = /x/gi;
var regExPatternO = /o/gi;
funktion ExOh(str) {
let xCount = 0;
let oCount = 0;
funktion ExOh(str) {
Palindrom
Lassen Sie die Funktion Palindrom(str) den übergebenen Parameter str übernehmen und die
Zeichenfolge true zurückgeben, wenn der Parameter ein Palindrom ist (die Zeichenfolge ist vorwärts
und rückwärts gleich), andernfalls wird die Zeichenfolge false zurückgegeben. Zum Beispiel: „racecar“
ist auch „racecar“ rückwärts. Satzzeichen und Zahlen sind nicht Teil der Zeichenfolge.
Beispiele
Eingabe: „Auge“
Ausgabe: wahr
function Palindrome(str) {
modifiziert = str.replace(/W/g,"");
function Palindrome(str) {
function Palindrome(str) {
Arith Geo
Lassen Sie die FunktionArithGeo (arr) das in arr gespeicherte Zahlenarray nehmen und die
Zeichenfolge "Arithmetic" zurückgeben, wenn die Sequenz einem arithmetischen Muster folgt,
oder "Geometric" zurückgeben, wenn sie einem geometrischen Muster folgt. Wenn die Sequenz keinem
der beiden Muster folgt, geben Sie -1 zurück. Eine arithmetische Sequenz ist eine Sequenz, bei der die
Differenz zwischen jeder der Zahlen konsistent ist, wobei wie in einer geometrischen Sequenz jeder
Term nach dem ersten mit einem konstanten oder gemeinsamen Verhältnis multipliziert wird.
Rechenbeispiel: [2, 4, 6, 8] und geometrisches Beispiel: [2, 6, 18, 54]. Negative Zahlen können als
Parameter eingegeben werden, 0 wird nicht eingegeben und kein Array enthält alle gleichen Elemente.
Beispiele
Eingabe: [5,10,15]
Ausgabe: Arithmetik
Eingabe: [2,4,16,24]
Ausgabe: -1
funktion ArithGeo(arr) {
var len = arr.length;
var arithK = arr[1] - arr[0];
var geoK = arr[1] / arr[0];
return -1;
}
funktion ArithGeo(arr) {
if (arithmetic) {
return 'Arithmetik';
}
return -1;
funktion ArithGeo(arr) {
Array-Addition I
Lassen Sie die Funktion ArrayAdditionI (arr) das in arr gespeicherte Zahlenarray nehmen und
die Zeichenfolge true zurückgeben, wenn eine beliebige Zahlenkombination im Array (ohne die größte
Zahl) addiert werden kann, um der größten Zahl im Array zu entsprechen, andernfalls wird die
Zeichenfolge false zurückgegeben. Zum Beispiel: Wenn arr [4, 6, 23, 10, 1, 3] enthält, sollte die
Ausgabe true zurückgeben, weil 4 + 6 + 10 + 3 = 23. Das Array ist nicht leer, enthält nicht die gleichen
Elemente und kann negative Zahlen enthalten.
Beispiele
Eingabe: [5,7,16,1,2]
Ausgabe: falsch
Eingabe: [3,5,-1,8,12]
Ausgabe: wahr
function ArrayAdditionI(arr) {
var target;
var addArr = arrayPrep(arr);
var len = addArr.length;
var permNum = Math.pow(2, len);
console.log('test0 ', permNum, target, addArr);
function arrayPrep(arr2) {
arr.sort(Funktion(a, b){
return a - b
});
target = arr2.pop()
return arr2
}
}
function ArrayAdditionI(arr) {
let sum = 0;
for (let j = 0; j < combos[i].length; j++) {
if (combos[i][j] === '1') {
sum += arr[j];
}
}
function ArrayAdditionI(arr) {
Buchstabenanzahl I
Lassen Sie die FunktionLetterCountI (str) den übergebenen Parameter str übernehmen und
das erste Wort mit der größten Anzahl an wiederholten Buchstaben zurückgeben. Zum Beispiel: "Heute
ist der größte Tag aller Zeiten!" sollte am größten zurückkommen, weil er 2 e's (und 2 t's) hat und er
vor je kommt, der auch 2 e's hat. Wenn keine Wörter mit sich wiederholenden Buchstaben vorhanden
sind, geben Sie -1 zurück. Wörter werden durch Leerzeichen getrennt.
Beispiele
if (newarr[0][1] == 1) {
return -1;
}
else {
return newarr[0][0];
}
}
funktion LetterCountI(str) {
let bestCount = 0;
let bestWord = '';
funktion LetterCountI(str) {
Lassen Sie die Funktion SecondGreatLow (arr) das in arr gespeicherte Zahlenarray
nehmen und die zweitniedrigste bzw. zweitgrößte Zahl durch ein Leerzeichen getrennt zurückgeben.
Zum Beispiel: Wenn arr [7, 7, 12, 98, 106] enthält, sollte die Ausgabe 12 98 sein. Das Array ist nicht
leer und enthält mindestens 2 Zahlen. Es kann schwierig werden, wenn es nur zwei Zahlen gibt!
Beispiele
funktion Lonely(arr) {
var len = arr.length;
var testobj = {};
var output = [];
var count = 0;
for (var i = 0; i < len; i++) {
var holder = arr[i];
if (!testobj[holder]) {
testobj[holder] = true;
output[count++] = holder;
}
}
rücklaufausgang
}
}
funktion SecondGreatLow(arr) {
funktion SecondGreatLow(arr) {
Beispiele
if (numleng > 3) {
var arr = string.split("");
for (var i= numleng - 3; i > 0; i = i - 3) {
arr.splice(i, 0, ",");
}
var newstring = arr.join("");
}
newstring zurückgeben;
funktion DivisionStringified(num1,num2) {
funktion DivisionStringified(num1,num2) {
rückgabeergebnis;
}
rückgabeformat(num1 / num2);
}
Zählminuten I
Lassen Sie die Funktion CountingMinutesI (str ) den übergebenen STR-Parameter zweimal
(jeweils richtig mit einem Doppelpunkt und am oder pm formatiert) durch einen Bindestrich trennen und
die Gesamtzahl der Minuten zwischen den beiden Zeiten zurückgeben. Die Uhrzeit wird in einem 12-
Stunden-Format angezeigt. Zum Beispiel: Wenn str 9:00 Uhr -10:00Uhr ist, dann sollte die
Ausgabe 60 sein. Wenn str 13:00 -11:00 Uhr ist, sollte die Ausgabe 1320 sein.
Beispiele
if (diff < 0) {
diff = diff + (60 * 24);
}
return-Diff;
funktion CountingMinutesI(str) {
funktion CountingMinutesI(str) {
funktion parseMinutes(timeStr) {
var time = timeStr.match(/d+/g);
var hour = parseInt(Zeit[0]), minute = parseInt(Zeit[1]);
var ampm = (timeStr.match(/[a|p]m/g)[0] === 'am') ? 0 : 1;
if (hour === 12) hour = 0;
Lassen Sie die Funktion MeanMode (arr) das in arr gespeicherte Zahlenarray nehmen
und 1 zurückgeben, wenn der Modus gleich dem Mittelwert ist, 0, wenn sie nicht gleich sind (d. h. [5, 3,
3, 3, 1] sollte 1 zurückgeben, weil der Modus (3) gleich dem Mittelwert (3) ist). Das Array ist nicht leer,
enthält nur positive ganze Zahlen und nicht mehr als einen Modus.
Beispiele
Eingang: [1, 2, 3]
Ausgang: 0
Eingang: [4, 4, 4, 6, 2]
Ausgang: 1
funktion MeanMode(arr) {
len = arr.length
//Schritt 1: Mittelwert ermitteln - selbsterklärend
funktionsmittelwert (arr) {
var count = 0;
for (var i = 0; i < len; i++) {
count += arr[i]
}
console.log (count / len)
rückgabezähler/ len
}
//Schritt 2: Bestimmen Sie den Modus. Wir müssen zählen, wie viele von jedem Typ
im Array sind. Eine Alternative besteht darin, einen Zähler am Laufen zu halten, das
Array zu sortieren und dann zu zählen, bis sich ein Element ändert, wobei die
maximale Anzahl und der zugehörige Wert im Auge behalten werden. Das Folgende ist
ein viel einfacherer Weg, vorausgesetzt, man hat eine grundlegende Vertrautheit mit
Javascript-Objekten. Es macht jeden neuen Eintrag zu einem Schlüssel und zählt, wie
viele davon vorhanden sind, und erstellt dann ein Array der erstellten Schlüssel-
Wert-Paare.
funktionsmodus(arr) {
var obj = {};
for (var i = 0, len = arr.length; i < len; i++) {
if (obj[arr[i]] === undefined) {
obj[arr[i]] = 1;
}
else {
obj[arr[i]]++;
}
}
var objarr = [];
für (x in obj) {
objarr.push([x, obj[x]]);
}
objarr.sort(function(a, b) {return b[1] - a[1]});
console.log(objarr[0][0]);
return objarr[0][0];
}
//Vergleichen Sie den Mittelwert und den Modus
return mode(arr) == mean(arr)? 1: 0;
}
funktion MeanMode(arr) {
// Suchmodus
let mostOccurances = 0;
let mode = 0;
for (let i = 0; i < arr.length; i++) {
let marco = arr[i];
for (let j = i+1, count = 0; j < arr.length; j++) {
if (marco === arr[j]) {
// match!
count++;
if (count > mostOccurances) {
mostOccurances = count;
mode = arr[j];
}
}
}
}
//Mittelwert finden
let mean = 0;
for (let i = 0; i < arr.length; i++) {
mean += arr[i];
}
mean = Math.round(mean/arr.length);
funktion MeanMode(arr) {
funktionsmittelwert (arr) {
return arr.reduce(function(a,b) {return a+b;}, 0) / arr.length;
}
Armaturenbrett-Eins
Lassen Sie die FunktionDashInsert (str) Bindestriche ('-') zwischen jeweils zwei ungeraden
Zahlen in str einfügen. Zum Beispiel: Wenn str 454793 ist, sollte die Ausgabe 4547-9-3 sein. Zähle
die Null nicht als ungerade Zahl.
Beispiele
Eingang: 99946
Ausgang: 9-9-946
Eingang: 56730
Ausgang: 567-30
funktion DashInsert(num) {
var strnum = num.toString();
var arr = strnum.split("");
return x;
funktion DashInsert(str) {
funktion DashInsert(str) {
funktion isOdd(n) {
return parseInt(n) % 2 === 1;
}
Tauschkoffer
Lassen Sie die FunktionSwapCase (str) den str-Parameter nehmen und die
Groß-/Kleinschreibung jedes Zeichens vertauschen. Zum Beispiel: Wenn str "Hello World" ist, sollte
die Ausgabe hELLO wORLD sein. Lassen Sie Zahlen und Symbole so bleiben, wie sie sind.
Beispiele
Eingabe: „Hello-LOL“
Ausgabe: hELLO-lol
function SwapCase(str) {
function SwapCase(str) {
Lassen Sie die FunktionNumberSearch (str) den Parameter str verwenden, suchen Sie nach
allen Zahlen in der Zeichenfolge, fügen Sie sie zusammen und geben Sie diese endgültige Zahl zurück.
Zum Beispiel: Wenn str "88Hello 3World!" ist, sollte die Ausgabe 91 sein. Sie müssen zwischen
einstelligen Zahlen und mehrstelligen Zahlen wie im obigen Beispiel unterscheiden. "55Hello" und
"5Hello 5" sollten also zwei verschiedene Antworten zurückgeben. Jede Zeichenfolge enthält mindestens
einen Buchstaben oder ein Symbol.
Beispiele
Eingang: "75Number9"
Ausgang: 84
rückgabe ans
}
funktion NumberAddition(str) {
if (!DIGITS.includes(str[i])) {
if (number !== '') {
numbers.push(number);
}
number = '';
} else {
number += str[i];
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += parseInt(Zahlen[i]);
}
rücksumme;
}
funktion NumberAddition(str) {
var-Nummern = str.match (/\d+/g) || [];
return numbers.reduce(function(sum, number) {return sum + Number(number)}, 0);
}
Lassen Sie die FunktionThirdGreatest (strArr) das in strArr gespeicherte Array von Strings
nehmen und das drittgrößte Wort darin zurückgeben. Also zum Beispiel: Wenn strArr ["hello",
"world", "before", "all"] ist, sollte Ihre Ausgabe Welt sein, weil "before" 6 Buchstaben lang ist und
"hello" und "world" beide 5 sind, aber die Ausgabe sollte Welt sein, weil sie als das letzte 5-
Buchstaben-Wort im Array erscheint. Wenn strArr ["hello", "world", "after", "all"] war, sollte die
Ausgabe nachher sein, da die ersten drei Wörter alle 5 Buchstaben lang sind, geben Sie also den letzten
zurück. Das Array hat mindestens drei Zeichenfolgen und jede Zeichenfolge enthält nur Buchstaben.
Beispiele
Eingabe: ["Coder","Byte","Code"]
Ausgabe: Code
Eingabe: ["abc","defg","z","hijk"]
Ausgabe: abc
funktion ThirdGreatest(strArr) {
strArr.sort(function(a, b) {return b.length - a.length});
return strArr[2];
}
funktion ThirdGreatest(strArr) {
return strArr[2];
funktion ThirdGreatest(strArr) {
Zweierpotenzen
Lassen Sie die FunktionPowersofTwo (num) den übergebenen Parameter num, der eine ganze
Zahl ist, nehmen und die Zeichenfolge true zurückgeben, wenn es sich um eine Zweierpotenz handelt.
Wenn dies nicht der Fall ist, wird die Zeichenfolge false zurückgegeben. Zum Beispiel, wenn die
Eingabe 16 ist, dann sollte Ihr Programm die Zeichenfolge true zurückgeben, aber wenn die Eingabe 22
ist, dann sollte die Ausgabe die Zeichenfolge false sein.
Beispiele
Eingang: 4
Ausgang: wahr
Eingang: 124
Ausgang: false
funktion PowersofTwo(num) {
else {
while (num >= 2){
var test = num%2;
if (test == 0){
num = num/2
ans = "true";}
else{
num = 0;
ans = "false"}
}
}
// code goes here
return ans;
}
//diesen Funktionsaufruf hier behalten
// um zu sehen, wie Argumente in JavaScript eingegeben werden, scrollen Sie nach
unten
PowersofTwo(readline());
funktion PowersofTwo(num) {
funktion PowersofTwo(num) {
Additive Persistenz
Lassen Sie die Funktion AdditivePersistenz(num) den übergebenen num -Parameter, der immer
eine positive ganze Zahl sein wird, nehmen und seine additive Persistenz zurückgeben, die die Anzahl
der Male ist, die Sie die Ziffern in num hinzufügen müssen, bis Sie eine einzelne Ziffer erreichen. Zum
Beispiel: Wenn num 2718 ist, dann sollte Ihr Programm 2 zurückgeben, weil 2 + 7 + 1 + 8 = 18 und 1 +
8 = 9 und Sie bei 9 anhalten.
Beispiele
Eingang: 4
Ausgang: 0
Eingang: 19
Ausgang: 2
HERAUSFORDERUNG ANZEIGEN
funktion AdditivePersistenz(num) {
funktion arrprep(numb) {
var numstr = numb.toString();
var arr = numstr.split('');
var numarr = arr.map(function(val) {
return parseInt(val)
})
rücksendungsnummer
}
funktionszusatz (arr) {
var redux = arr.reduce(Funktion(a, b){
return a + b })
retourenreduzierung
}
var count = 0;
rückgabezähler
funktion AdditivePersistenz(num) {
num = num.toString();
let count = 0;
}
rückgabezählung;
}
Multiplikative Persistenz
Lassen Sie die Funktion Multiplikative Persistenz (num) den übergebenen num -Parameter,
der immer eine positive ganze Zahl sein wird, nehmen und seine multiplikative Persistenz zurückgeben,
die die Anzahl der Male ist, die Sie die Ziffern in num multiplizieren müssen, bis Sie eine einzelne
Ziffer erreichen. Zum Beispiel: Wenn num 39 ist, dann sollte Ihr Programm 3 zurückgeben, weil 3 * 9 =
27, dann 2 * 7 = 14 und schließlich 1 * 4 = 4 und Sie bei 4 anhalten.
Beispiele
Eingang: 4
Ausgang: 0
Eingang: 25
Ausgang: 2
funktion Multiplikative Persistenz (num) {
funktion numprep(num) {
var strnum = num.toString();
var arr = strnum.split('');
var numarr = arr.map(function(val) {
return parseInt(val)});
rücksendungsnummer
}
function multnums(arr) {
var newnum = arr.reduce(Funktion(a, b) {
return a * b})
return newnum
}
// code goes here
var count = 0;
num = num.toString();
let count = 0;
while(1) {
if (num.length === 1) {
pause;
}
count++;
let sum = 1;
for (let i = 0; i < num.length; i++) {
sum *= parseInt(num[i]);
}
num = sum.toString();
}
rückgabezählung;
Offline-Minimum
Beispiele
Eingabe: ["1","2","E","E","3"]
Ausgabe: 1,2
Eingabe: ["4","E","1","E","2","E","3","E"]
Ausgabe: 4,1,2,3
funktion OffLineMinimum(strArr) {
var len = strArr.length;
var count = 0;
var holdArr = [];
var ans = [];
funktion OffLineMinimum(strArr) {
let smallestIndex = 0;
let smallestNumber = null;
strArr.forEach(Funktion(Wert,Index){
if (index > maxIndex) {
rückgabe;
}
if (value !== 'E' && value !== 'R') {
if (leastNumber === null || parseInt(value) < smallestNumber) {
smallestIndex = index;
leastNumber = parseInt(Wert);
}
}
});
strArr[smallestIndex] = 'R';
kleinsteZahl zurückgeben;
}
return result.join(',');
funktion OffLineMinimum(strArr) {
// code goes here
var arr = [], result = [];
var log = "";
für (Artikel von strArr) {
if (item === 'E') {
result.push(arr.shift());
} else {
arr.push(parseInt(item));
arr = arr.sort(function(a, b) {return a - b});
}
}
return result.join(',');
}
Reihenfolge ändern
Lassen Sie die Funktion ChangingSequence(arr) das in arr gespeicherte Zahlenarray nehmen
und den Index zurückgeben, bei dem die Zahlen aufhören zu steigen und anfangen zu fallen oder
aufhören zu fallen und anfangen zu steigen. Zum Beispiel: Wenn arr [1, 2, 4, 6, 4, 3, 1] ist, dann sollte
Ihr Programm 3 zurückgeben, weil 6 der letzte Punkt im Array ist, an dem die Zahlen ansteigen und die
nächste Zahl eine abnehmende Sequenz beginnt. Das Array enthält mindestens 3 Zahlen und darf nur
eine einzige Sequenz enthalten, die zu- oder abnimmt. Wenn es nur eine einzige Sequenz im Array gibt,
sollte Ihr Programm -1 zurückgeben. Die Indizierung sollte mit 0 beginnen.
Beispiele
//Legen Sie einen maximalen Index des Arrays fest, um ein Überlaufen zu
verhindern
var maxInd = arr.length - 1;
renditeindex;
}
renditeindex;
}
}
function ChangingSequence(arr) {
function ChangingSequence(arr) {
if (arr.length < 2) return -1;
var increasing = arr[0] < arr[1];
Überlappende Bereiche
Lassen Sie die Funktion OverlappingRanges (arr) das in arr gespeicherte Zahlenarray nehmen,
das 5 positive ganze Zahlen enthält, wobei die ersten beiden einen Zahlenbereich (a bis b) darstellen, die
nächsten 2 auch einen anderen ganzen Zahlenbereich (c bis d) darstellen, und ein letztes fünftes Element
(x), das ebenfalls eine positive ganze Zahl ist, und die Zeichenfolge TRUE zurückgeben, wenn sich
beide Sätze von Bereichen um mindestens x Zahlen überlappen. Zum Beispiel: Wenn arr [4, 10, 2, 6, 3]
ist, dann sollte Ihr Programm die Zeichenfolge true zurückgeben. Der erste Zahlenbereich ist 4, 5, 6, 7,
8, 9, 10 und der zweite Zahlenbereich ist 2, 3, 4, 5, 6. Das letzte Element im Array ist 3, und es gibt 3
Zahlen, die sich zwischen beiden Bereichen überlappen: 4, 5 und 6. Wenn sich beide Bereiche nicht um
mindestens x Zahlen überlappen, sollte Ihr Programm die Zeichenfolge false zurückgeben.
Beispiele
Eingabe: [5,11,1,5,1]
Ausgabe: wahr
Eingabe: [1,8,2,4,4]
Ausgabe: falsch
funktion OverlappingRanges(arr) {
var target = arr.pop();
var MaxLowerBound = Math.max(arr[0], arr[2]);
var MinUpperBound = Math.min(arr[1], arr[3]);
funktion OverlappingRanges(arr) {
let count = 0;
for (let i = arr[0]; i <= arr[1]; i++) {
if (i >= arr[2] && i <= arr[3]) {
count++;
}
}
return (count >= arr[4]) ? true : false;
}
funktion OverlappingRanges(arr) {
var range1 = [arr[0], arr[1]]; // (a, b)
var range2 = [arr[2], arr[3]]; // (c, d)
var minimumOverlap = arr[4] - 1;
Supererhöhend
Lassen Sie die FunktionSupererhöhend (arr) das in arr gespeicherte Zahlenarray nehmen und
bestimmen, ob das Array eine supererhöhende Sequenz bildet, bei der jedes Element im Array größer als
die Summe aller vorherigen Elemente ist. Das Array besteht nur aus positiven ganzen Zahlen. Zum
Beispiel: Wenn arr [1, 3, 6, 13, 54] ist, dann sollte Ihr Programm die Zeichenfolge "true" zurückgeben,
weil es eine supererhöhende Sequenz bildet. Wenn keine überhöhte Sequenz gebildet wird, sollte Ihr
Programm die Zeichenfolge "false" zurückgeben
Beispiele
Eingabe: [1,2,3,4]
Ausgabe: falsch
Eingabe: [1,2,5,10]
Ausgabe: wahr
funktion Superincreasing(arr) {
var maxInd = arr.length - 1;
var target;
var sum;
}
Supererhöhend(readline());
funktion Superincreasing(arr) {
funktion Superincreasing(arr) {
if (arr.length < 2) return false;
if (arr.length === 2) return arr[0] < arr[1];
if (arr[0] >= arr[1]) return false;
Beispiele
let count = 0;
for (let i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] !== strArr[1][i]) {
count++
}
}
rückgabezählung;
}
funktion HammingDistance(strArr) {
var word1 = strArr[0],
word2 = strArr[1],
len = word1.length,
count = 0;
Rechteckbereich
Am besten bewertete Benutzerlösung
funktion RectangleArea(strArr) {
var obj = {};
obj.x1 = parseInt(strArr[0].match(/((-*d+)/)[1], 10);
obj.y1 = parseInt(strArr[0].match(/(-*d+))/)[1], 10);
funktion RectangleArea(strArr) {
let deltaX = 0;
let deltaY = 0;
coords.forEach(function(val){
if (x === val[0]) {
deltaY = Math.abs(val[1] - y);
}
if (y === val[1]) {
deltaX = Math.abs(val[0] - x);
}
});
funktion RectangleArea(strArr) {
var points = strArr.map(str => str.match(/\d+/g));
var minX = points.map(Punkt => Punkt[0]).sort()[0];
var minY = points.map(Punkt => Punkt[1]).sort()[0];
var maxX = points.map(point => Punkt[0]).sort().reverse()[0];
var maxY = points.map(point => Punkt[1]).sort().reverse()[0];
Bitweise Eins
Lassen Sie die FunktionBitwiseOne (strArr) das in strArr gespeicherte Array von Strings
nehmen, das nur zwei Strings gleicher Länge enthält, die Binärzahlen darstellen, und einen endgültigen
Binärstring zurückgeben, der die bitweise ODER-Verknüpfung auf beiden Strings durchgeführt hat. Eine
bitweise ODER-Operation platziert eine 0 in der neuen Zeichenfolge, wobei es Nullen in beiden
Binärzeichenfolgen gibt, andernfalls platziert sie eine 1 an dieser Stelle. Zum Beispiel:
Wenn strArr ["1001", "0100"] ist, dann sollte Ihr Programm die Zeichenfolge "1101" zurückgeben
Beispiele
return newStr;
}
funktion BitwiseOne(strArr) {
var output = '';
for (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] === '1' || strArr[1][i] === '1') {
output += '1';
} else {
output += '0';
}
}
rücklaufausgang;
}
funktion BitwiseOne(strArr) {
Lassen Sie die Funktion OtherProducts (arr) das in arr gespeicherte Zahlenarray nehmen
und eine neue Liste der Produkte aller anderen Zahlen im Array für jedes Element zurückgeben. Zum
Beispiel: Wenn arr [1, 2, 3, 4, 5] ist, dann ist das neue Array, wobei jede Position im neuen Array das
Produkt aller anderen Elemente ist, [120, 60, 40, 30, 24]. Die folgenden Berechnungen wurden
durchgeführt, um diese Antwort zu erhalten: [(2*3 * 4*5), (1*3 * 4*5), (1*2*4*5), (1*2*3*5),
(1*2*3*4)]. Sie sollten dieses neue Array generieren und dann die Zahlen als Zeichenfolge mit einem
Bindestrich zurückgeben: 120-60-40-30-24. Das Array enthält höchstens 10 Elemente und mindestens 1
Element mit nur positiven ganzen Zahlen.
Beispiele
Eingang: [1,4,3]
Ausgang: 12-3-4
Eingabe: [3,1,2,6]
Ausgabe: 12-36-18-6
funktion AndereProdukte(arr) {
let holdArray = [];
return holdArray.join('-');
}
funktion AndereProdukte(arr) {
funktionsprodukt (arr) {
return arr.reduce((a,b) => a * b);
}
funktion AndereProdukte(arr) {
var products = [];
for (var i = 0; i < arr.length; i++) {
var other = arr.slice(0, i).concat(arr.slice(i + 1));
products.push(Produkt(andere));
}
products.join ('-') zurückgeben;
}
Wellensortierung
Lassen Sie die Funktion WaveSorting (arr) das in arr gespeicherte Array positiver Ganzzahlen
nehmen und die Zeichenfolge true zurückgeben, wenn die Zahlen in einem Wellenmuster angeordnet
werden können: a1 > a2 < a3 > a4 < a5 > ..., andernfalls geben Sie die Zeichenfolge false zurück. Zum
Beispiel, wenn arr ist: [0, 1, 2, 4, 1, 4], dann ist eine mögliche Wellenordnung der Zahlen: [2, 0, 4, 1,
4, 1]. Für diese Eingabe sollte Ihr Programm also den String true zurückgeben. Das Eingabearray enthält
immer mindestens 2 Elemente. Weitere Beispiele sind unten als Beispiel-Testfälle aufgeführt.
Beispiele
Eingabe: [0, 1, 2, 4, 1, 1, 1]
Ausgabe: falsch
funktion WaveSorting(arr) {
newArr = [];
// finden Sie die Anzahl des häufigsten Elements, nämlich den Modus
funktion mostFrequent(arr) {
arr.sort();
var most = 0;
var frequency = 1;
for (var i = 0; i < arr.length; i++) {
if (arr[i] === arr[i + 1]) {
frequenz++;
if (frequency > most) {
most = Frequenz;
}
} else {
frequency = 1;
}
}
am meisten zurückzugeben;
}
funktion WaveSorting(arr) {
// Solange wir eine andere Zahl zwischen die gleiche Zahl setzen können,
funktioniert es
return mostFrequent(arr) < (arr.length / 2);
}
Array-Matching
Lassen Sie die FunktionArrayMatching (strArr) das in strArr gespeicherte Array von Strings
lesen, das nur zwei Elemente enthält, die beide ein Array positiver Ganzzahlen darstellen. Zum Beispiel:
Wenn strArr ["[1, 2, 5, 6]", "[5, 2, 8, 11]"] ist, dann repräsentieren beide Elemente in der Eingabe
zwei ganzzahlige Arrays, und Ihr Ziel für diese Herausforderung ist es, die Elemente an entsprechenden
Stellen aus beiden Arrays hinzuzufügen. Für die Beispieleingabe sollte Ihr Programm die folgenden
Ergänzungen vornehmen: [(1 + 5), (2 + 2), (5 + 8), (6 + 11)], die dann gleich [6, 4, 13, 17] sind. Ihr
Programm sollte dieses resultierende Array schließlich in einem String-Format zurückgeben, wobei jedes
Element durch einen Bindestrich getrennt ist: 6-4-13-17.
Wenn die beiden Arrays nicht die gleiche Anzahl von Elementen aufweisen, hängen Sie die
verbleibenden Elemente einfach an das neue Array an (Beispiel unten). Beide Arrays haben das Format:
[e1, e2, e3, ...], wobei mindestens ein Element in jedem Array vorhanden ist.
Beispiele
function ArrayMatching(strArr) {
strArr = strArr.map(val => val.replace(/[[]]/g, '')
.split(/s*,s*/).map(val1 => parseInt(val1, 10)));
function ArrayMatching(strArr) {
function ArrayMatching(strArr) {
arr1 = strArr[0].match(/\d+/g).map(Zahl);
arr2 = strArr[1].match(/\d+/g).map(Nummer);
Binäre Umkehrung
Lassen Sie die Funktion BinaryReversal (str) den übergebenen Parameter str, der eine positive
ganze Zahl ist, seine binäre Darstellung (auf die nächsten N * 8 Bits aufgefüllt) nehmen, diese Bitfolge
umkehren und dann schließlich die neue umgekehrte Zeichenfolge in Dezimalform zurückgeben. Zum
Beispiel: Wenn str "47" ist, dann ist die binäre Version dieser ganzen Zahl 101111, aber wir füllen sie
mit 00101111 auf. Ihr Programm sollte diese Binärzeichenfolge umkehren, die dann zu: 11110100 wird,
und dann schließlich die Dezimalversion dieser Zeichenfolge zurückgeben, die 244 ist.
Beispiele
Eingang: "213"
Ausgang: 171
Eingang: "4567"
Ausgang: 60296
funktion BinaryReversal(str) {
//füge führende Nullen hinzu, um die Zahl zu einer ganzzahligen Anzahl von Bytes
zu machen
let byteString = `${'0'.repeat(length % 8 === 0 ? 0 : 8 - length % 8)}${num}`;
funktion BinaryReversal(str) {
function toBinary(str) {
result = Number(str).toString(2);
// Pad links mit führenden 0s, um es zu einem Vielfachen von 8 Ziffern zu
machen...
wenn (result.length % 8 !== 0)
return new Array(8 - (result.length % 8)).fill(0).join('') + result;
sonst Ergebnis zurückgeben;
}
function toDecimal(str) {
return parseInt(str, 2);
}
funktion BinaryReversal(str) {
//return toBinary(str);
var reverse = toBinary(str).split('').reverse().join('');
return toDecimal(reverse);
}
Beispiele
Eingang: [9, 9, 4, 2]
Ausgang: 1
Eingabe: [10, 22, 9, 33, 21, 50, 41, 60, 22, 68, 90]
Ausgabe: 7
function LongestIncreasingSequence(arr) {
let len = arr.length;
let arrHolder = [];
//Nehmen Sie alle Arrays heraus, die nicht aufsteigend sind (verwenden Sie das
Ascend (), um zu bestimmen)
arrHolder = arrHolder.filter(val => aufsteigend(val));
funktion Ascend(inputArr) {
let arrlen = inputArr.length;
return inputArr.every((val, ind) => {
if (ind < arrlen - 1) {
return val < inputArr[ind + 1];
}
return true;
});
}
// https://stackoverflow.com/questions/2631726/how-to-determine-the-longest-
increasing-subsequence-using-dynamic-programming
// Von hier aus verwendeter Algorithmus
function LongestIncreasingSequence(arr) {
return lis.length;
funktion erhöht(arr) {
return arr.every(function(value, index, arr) {
var prev = (index === 0) ? 0: arr[index - 1];
return prev < value;
});
}
function LongestIncreasingSequence(arr) {
var longest = 0;
Gleichmäßige Paare
Lassen Sie die FunktionEvenPairs (str) den übergebenen Parameter str nehmen und
bestimmen, ob irgendwo in der Zeichenfolge ein Paar benachbarter gerader Zahlen vorhanden ist. Wenn
ein Paar vorhanden ist, geben Sie die Zeichenfolge true zurück, andernfalls false. Zum Beispiel:
Wenn str "f178svg3k19k46" ist, dann gibt es zwei gerade Zahlen am Ende der Zeichenfolge "46", also
sollte Ihr Programm die Zeichenfolge true zurückgeben. Ein weiteres Beispiel: Wenn str "7r5gg812"
ist, dann ist das Paar "812" (8 und 12), also sollte Ihr Programm die Zeichenfolge true zurückgeben.
Beispiele
Input: "3gy41d216"
Output: true
Eingabe: "f09r27i8e67"
Ausgabe: falsch
funktion EvenPairs(str) {
return regEx.test(str);
funktion EvenPairs(str) {
//Zifferngruppen abrufen
for (let i = 0, digitStr = ''; i < str.length; i++) {
let isDigit = DIGITS.includes(str[i]);
if (isDigit) {
digitStr += str[i];
}
}
}
funktion EvenPairs(str) {
var numbers = str.match(/\d+/g);
für (var number of numbers) {
if (hasEvenPairs(number)) return true;
}
return false;
}
Lassen Sie die FunktionNextPalindrome (num) den übergebenen Parameter num nehmen und
die nächstgrößte palindromische Zahl zurückgeben. Die Eingabe kann eine beliebige positive ganze Zahl
sein. Zum Beispiel: Wenn num 24 ist, dann sollte Ihr Programm 33 zurückgeben, weil das die
nächstgrößte Zahl ist, die ein Palindrom ist.
Beispiele
Eingang: 2
Ausgang: 3
Eingang: 180
Ausgang: 181
funktion NextPalindrome(num) {
while (true) {
numString = count.toString();
revString = numString.split('')
.reverse()
.join('');
if (revString === numString) return parseInt(numString, 10);
count++;
}
}
funktion NextPalindrome(num) {
funktion isPalindrome(str) {
for (let i = 0, max = Math.floor(str.length/2); i < max; i++) {
if (str[i] !== str[str.length-1-i]) {
return false;
}
}
return true;
}
}
funktion istPalindrom(num) {
var numStr = num.toString();
return numStr.split('').reverse().join('') === numStr;
}
funktion NextPalindrome(num) {
var nextNum = num + 1;
while (!isPalindrome(nextNum)) {
nextNum++;
}
return nextNum;
}
Lassen Sie die FunktionLargestPair (num) den übergebenen Parameter num nehmen und die
größte zweistellige Zahl innerhalb der ganzen Zahl bestimmen. Zum Beispiel: Wenn num 4759472 ist,
sollte Ihr Programm 94 zurückgeben, da dies die größte zweistellige Zahl ist. Die Eingabe enthält immer
mindestens zwei positive Ziffern.
Beispiele
Eingang: 453857
Ausgang: 85
Eingang: 363223311
Ausgang: 63
funktion LargestPair(num) {
funktion LargestPair(num) {
num = num.toString();
let largestNum = 0;
for (let i = 1; i < num.length; i++) {
let testNum = parseInt(num[i-1] + num[i]);
if (testNum > largestNum) {
largestNum = testNum;
}
}
return largestNum;
}
//diesen Funktionsaufruf hier behalten
LargestPair(readline());
funktion LargestPair(num) {
var max = 0;
var numStr = num.toString();
Beispiele
Eingabe: „abcdef“
Ausgabe: a
function NonrepeatingCharacter(str) {
function NonrepeatingCharacter(str) {
str = str.replace(/\s+/g, '');
var counts = {};
Lassen Sie die FunktionTwoSum (arr) das in arr gespeicherte Array ganzer Zahlen nehmen und
bestimmen, ob zwei beliebige Zahlen (mit Ausnahme des ersten Elements) im Array zum ersten Element
im Array summiert werden können. Zum Beispiel: Wenn arr [7, 3, 5, 2, -4, 8, 11] ist, dann gibt es
tatsächlich zwei Paare, die sich zur Zahl 7 addieren: [5, 2] und [-4, 11]. Ihr Programm sollte alle Paare
mit den durch ein Komma getrennten Zahlen in der Reihenfolge zurückgeben, in der die erste Zahl im
Array erscheint. Paare sollten durch ein Leerzeichen getrennt sein. Für das obige Beispiel würde Ihr
Programm also Folgendes zurückgeben: 5,2 -4,11
Wenn es keine zwei Zahlen gibt, die sich zum ersten Element im Array addieren, geben Sie -1 zurück
Beispiele
funktion TwoSum(arr) {
arr.forEach(item => {
const compliment = answer - item;
if (history.has(compliment)) {
matches.push([item, compliment]);
} else {
history.add(item);
}
});
funktion TwoSum(arr) {
var pairs = [];
var sum = arr[0];
var rest = arr.slice(1);
paare = Paare finden (Ruhe, Summe);
Bitweise Zwei
Beispiele
funktion BitwiseTwo(strArr) {
funktion BitwiseTwo(strArr) {
var result = '';
for (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] === '1' && strArr[1][i] === '1') {
result += '1';
} else {
result += '0';
}
}
rückgabeergebnis;
}
Lassen Sie die FunktionPowerSetCount (arr) das Array der in arr gespeicherten Ganzzahlen
nehmen und die Länge des Leistungssatzes (die Anzahl aller möglichen Sätze) zurückgeben, die
generiert werden können. Zum Beispiel: Wenn arr [1, 2, 3] ist, dann bilden die folgenden Sätze den
Leistungssatz:
[]
[1]
[2]
[3]
[1, 2]
[1, 3]
[2, 3]
[1, 2, 3]
Sie können sehen, dass vor allem mögliche Sätze zusammen mit dem leeren Satz erzeugt werden. Daher
sollte Ihr Programm für diese Eingabe 8 zurückgeben.
Beispiele
Eingang: [1, 2, 3, 4]
Ausgang: 16
Eingang: [5, 6]
Ausgang: 4
funktion PowerSetCount(arr) {
let len = arr.length;
return Math.pow(2, len);
}
funktion PowerSetCount(arr) {
return Math.pow(2, arr.length);
}
funktion PowerSetCount(arr) {
return Math.pow(2, arr.length);
}
Produktziffern
Lassen Sie die Funktion ProductDigits(num) den übergebenen Parameter num übernehmen, der
eine positive ganze Zahl ist, und bestimmen Sie die geringste Anzahl von Ziffern, die Sie multiplizieren
müssen, um sie zu erzeugen. Zum Beispiel: Wenn num 24 ist, dann können Sie 8 mit 3 multiplizieren,
was 24 ergibt, also sollte Ihr Programm 2 zurückgeben, weil insgesamt nur 2 Ziffern benötigt werden.
Ein weiteres Beispiel: Wenn num 90 ist, können Sie 10 * 9 multiplizieren. In diesem Fall sollte Ihr
Programm 3 ausgeben, da Sie 90 nicht erreichen können, ohne insgesamt 3 Ziffern in Ihrer
Multiplikation zu verwenden.
Beispiele
Eingang: 6
Ausgang: 2
Eingang: 23
Ausgang: 3
funktion ProductDigits(num) {
let pivot = Math.sqrt(num);
let value = num.toString().length + 1;
for (let i = 1; i <= pivot; i++) {
if (num % i === 0) {
let maxFactor = i;
maxCompFactor = num / maxFactor;
maxFactorString = maxFactor.toString();
maxCompFactorString = maxCompFactor.toString();
let totalLength = maxFactorString.length +
maxCompFactorString.length;
if (totalLength < value) {
value = totalLength;
}
}
}
rückgabewert;
}
funktion ProductDigits(num) {
let pf = primeFactors(num);
if (pf.length === 1) {
return pf[0].toString().length + 1;
}
funktion primeFactors(num) {
if (num === 1) return 1;
let pf = [];
funktion getDivisors(num) {
var divisors = [1];
for (var i = 2; i <= num / 2; i++) {
if (num % i === 0) {
divisors.push(i);
}
}
divisors.push(num);
teiler zurückzugeben;
}
funktion ProductDigits(num) {
var divisors = getDivisors(num);
var pairs = [];
Palindrom-Ersteller
Lassen Sie die Funktion PalindromeCreator(str) den übergebenen str -Parameter nehmen
und bestimmen, ob es möglich ist, eine palindromische Zeichenfolge mit einer Mindestlänge von 3
Zeichen durch Entfernen von 1 oder 2 Zeichen zu erstellen. Zum Beispiel: Wenn str "abjchba" ist,
dann können Sie die Zeichen jc entfernen, um "abhba" zu erzeugen, das ein Palindrom ist. In diesem
Beispiel sollte Ihr Programm die beiden Zeichen, die entfernt wurden, ohne Trennzeichen und in der
Reihenfolge zurückgeben, in der sie in der Zeichenfolge erscheinen, also jc. Wenn 1 oder 2 Zeichen
nicht entfernt werden können, um ein Palindrom zu erzeugen, geben Sie die Zeichenfolge nicht zurück.
Wenn die Eingabezeichenfolge bereits ein Palindrom ist, sollte Ihr Programm die
Zeichenfolge Palindrom zurückgeben.
Die Eingabe enthält nur Kleinbuchstaben. Ihr Programm sollte immer versuchen, die längste
palindromische Teilzeichenfolge zu erstellen, indem Sie 1 oder 2 Zeichen entfernen (siehe als Beispiel
den zweiten Beispiel-Testfall). Die 2 Zeichen, die Sie entfernen, müssen nicht neben der Zeichenfolge
stehen.
Beispiele
Eingabe: „mmop“
Ausgabe: nicht möglich
Eingabe: „kjjjhjj“
Ausgabe: k
function PalindromeCreator(str) {
let len = str.length;
//test to see if it is a Palindrome already
if (isPalindrome(str)) {
return 'palindrome';
}
for (let i = 0; i < len; i++) {
let testArray = str.split('');
let res = testArray.splice(i, 1);
let newString = testArray.join('');
if (isPalindrome(newString)) {
console.log('one');
return res.join('');
}
}
for (let i = 0; i < len; i++) {
let res = [];
for (let j = i; j < len - 1; j++) {
let testArray = str.split('');
res[0] = testArray.splice(i, 1);
res[1] = testArray.splice(j, 1);
let newString = testArray.join('');
if(isPalindrome(newString)) {
return res.join('');
}
}
}
return 'nicht möglich';
}
//-------------------Helfer---------------------------
funktion isPalindrome(str) {
let newStr = str.split('').reverse().join('');
if (newStr === str) {
return true;
}
return false;
}
function PalindromeCreator(str) {
if (isPalindrome(str)) {
return 'palindrome';
}
//Combos erstellen
let combos = [];
for (let i = 0, max = Math.pow(2, str.length); i < max; i++) {
let combo = i.toString(2);
//Entfernungskombos ausprobieren
for (let i = 0; i < combos.length; i++) {
let tryString = '';
for (let j = 0; j < combos[i].length; j++) {
tryString += (combos[i][j] === '1') ? '' : str[j];
}
if (palindromeCombos.length === 0) {
return 'nicht möglich';
}
// Sortieren Sie so, dass die ersten beiden gefundenen Buchstaben zuerst
zurückgegeben werden, wenn
// es gibt mehrere Werte
palindromeCombos.sort(Funktion(a,b){
return parseInt(a,2) < parseInt(b,2);
});
rückgabeergebnis;
funktion isPalindrome(str) {
return (str === str.split('').reverse().join('')) ? true : false;
}
funktion isPalindrome(str) {
return str === str.split('').reverse().join('');
}
function PalindromeCreator(str) {
if (isPalindrome(str)) return 'Palindrom';
Lassen Sie die Funktion BasicRomanNumerals(str) str lesen, die eine Zeichenfolge aus
römischen Ziffern sein wird. Die verwendeten Ziffern sind: I für 1, V für 5, X für 10, L für 50, C für
100, D für 500 und M für 1000. In römischen Ziffern, um eine Zahl wie 11 zu erstellen, addieren Sie
einfach eine 1 nach der 10, so dass Sie XI erhalten. Um jedoch eine Zahl wie 19 zu erstellen, verwenden
Sie die Subtraktionsnotation , bei der ein I vor einem X oder V addiert wird (oder ein X vor einem L oder
C). 19 in römischen Ziffern ist also XIX.
Das Ziel Ihres Programms ist es, das Dezimaläquivalent der angegebenen römischen Zahl
zurückzugeben. Zum Beispiel: Wenn str "XXIV" ist, sollte Ihr Programm 24 zurückgeben
Beispiele
Eingang: "IV"
Ausgang: 4
Eingang: "XLVI"
Ausgang: 46
funktion BasicRomanNumerals(str) {
let letterObj = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
M: 1000
}
let res = 0;
let len = str.length;
for (let i = 0; i < len; i++) {
if (!letterObj[str[i + 1]] || letterObj[str[i]] >= letterObj[str[i +
1]]) {
res += letterObj[str[i]];
} else {
res += (letterObj[str[i + 1]] - letterObj[str[i]]);
i++;
}
}
return res;
}
funktion BasicRomanNumerals(str) {
/*
Symbol I V X L C D M
Wert 1 5 10 50 100 500 1,000
*/
const ROMAN_I = 1;
const ROMAN_V = 5;
const ROMAN_X = 10;
const ROMAN_L = 50;
const ROMAN_C = 100;
const ROMAN_D = 500;
const ROMAN_M = 1000;
let sum = 0;
switch(symbol) {
fall 'I':
if (nextSymbol === 'V') {
sum += ROMAN_V - ROMAN_I;
i++;
} else if (nextSymbol === 'X') {
sum += ROMAN_X - ROMAN_I;
i++;
} else {
sum += ROMAN_I;
}
pause;
fall 'V':
sum += ROMAN_V;
pause;
fall 'X':
if (nextSymbol === 'L') {
sum += ROMAN_L - ROMAN_X;
i++;
} else if (nextSymbol === 'C') {
sum += ROMAN_C - ROMAN_X;
i++;
} else {
sum += ROMAN_X;
}
pause;
fall 'L':
sum += ROMAN_L;
pause;
fall 'C':
if (nextSymbol === 'D') {
sum += ROMAN_D - ROMAN_C;
i++;
} else if (nextSymbol === 'M') {
sum += ROMAN_M - ROMAN_C;
i++;
} else {
sum += ROMAN_C;
}
pause;
fall 'D':
sum += ROMAN_D;
pause;
fall 'M':
sum += ROMAN_M;
pause;
default:
// Illegaler Saibling oder Platz
pause;
}
}
rücksumme;
}
funktion BasicRomanNumerals(str) {
var Dezimalstellen = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
var romans = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV',
'I'];
var output = 0;
Lebensmittelvertrieb
Lassen Sie die Funktion FoodDistribution (arr) das in arr gespeicherte Zahlenfeld lesen,
das das Hungerniveau verschiedener Personen zwischen 0 und 5 darstellt (0 bedeutet überhaupt nicht
hungrig, 5 bedeutet sehr hungrig). Sie werden auch N Sandwiches zum Verschenken haben, die von 1 bis
20 reichen. Das Format des Arrays ist [N, h1, h2, h3, ...], wobei N die Anzahl der Sandwiches darstellt,
die Sie haben, und der Rest des Arrays die Hungerstufen verschiedener Personen darstellt. Ihr Ziel ist es,
den Hungerunterschied zwischen den einzelnen Personen im Array mit den verfügbaren Sandwiches zu
minimieren.
Zum Beispiel: Wenn arr [5, 3, 1, 2, 1] ist, bedeutet dies, dass Sie 5 Sandwiches ausgeben müssen. Sie
können sie in der folgenden Reihenfolge an die Personen verteilen: 2, 0, 1, 0. Wenn man diese
Sandwiches den Menschen gibt, wird ihr Hungerlevel jetzt: [1, 1, 1, 1]. Die Differenz zwischen jedem
Paar von Personen ist jetzt 0, die Summe ist auch 0, also sollte Ihr Programm 0 zurückgeben. Hinweis:
Möglicherweise müssen Sie nicht alle oder sogar nur einige Ihrer Sandwiches ausgeben, um einen
minimierten Unterschied zu erzielen.
Ein weiteres Beispiel: Wenn arr [4, 5, 2, 3, 1, 0] ist, können Sie die Sandwiches in der folgenden
Reihenfolge verteilen: [3, 0, 1, 0, 0], was alle Hungerstufen zu folgenden macht: [2, 2, 2, 1, 0]. Die
Unterschiede zwischen jedem Paar von Personen sind jetzt: 0, 0, 1, 1 und so sollte Ihr Programm die
endgültige minimierte Differenz von 2 zurückgeben.
Beispiele
Eingang: [5, 2, 3, 4, 5]
Ausgang: 1
Eingang: [3, 2, 1, 0, 4, 1, 0]
Ausgang: 4
funktion FoodDistribution(arr) {
let treats = arr.shift();
let myArray = arr.slice(0);
let arrMin = arr.sort((val1, val2) => val2 - val1).pop()
let len = myArray.length;
//check to see if we have enough treats to get everyone to the current best
level
let testCount = myArray.reduce((val1, val2) => {
return val1 + val2 - arrMin;
}, 0);
if (testCount <= treats) {
return 0;
}
let count = 0;
for (let i = 0, len = valQuantArr.length; i < len - 1; i++) {
count += Math.abs(valQuantArr[i].value - valQuantArr[i + 1].value);
}
rückgabezählung;
}
//-----------------helfers-----------------------
flattenMid = (arr, treats, q) => {
let index = 0;
while (behandelt > 0 && index > -1) {
index = arr.findIndex((val, ind) => {
return val.quant <= q && ind >= 1 && ind < arr.length - 1 &&
val.value > arr[ind - 1].value && val.value > arr[ind + 1].value;
});
if (index >= 0) {
arr[index].value --;
treats -= q;
}
}
return [objektivieren(arr), behandelt];
}
//verwandelt ein Array in ein Objekt mit dem Wert gleich der Zahl, und die
//quant ist die Anzahl der Male, die es in einer Reihe auftritt
objectify = (array) => {
//if it is the array of numbers
if (typeof array[0] === 'number') {
let target = [];
let counter = 0;
for (let i = 0, len = array.length; i < len; i++) {
let val = array[i];
zähler++;
if (array[i] === array[i + 1]) {
fortfahren;
} else {
target.push({
value: array[i],
quant: Zähler
});
counter = 0;
}
}
renditeziel;
} else {
//Wenn es sich um ein Array von Objekten handelt, wandeln Sie es in ein
Array von Zahlen um und
//dann durch die Objectify-Methode laufen lassen
let targetArray = [];
array.forEach (val => {
while (val.quant) {
targetArray.push (Wert);
val.quant--;
}
});
return objectify(targetArray);
}
};
funktion FoodDistribution(arr) {
// Zu viele Sandwiches
if (comboSum > Sandwiches) {
fortfahren;
}
//Kann hier auch ein Häkchen setzen, um Sandwiches zu entfernen, die Hunger
verursachen würden < 0
return lowestHungerDifference;
funktion getHungerDifference(arr){
let diff = 0;
for (let i = 1; i < arr.length; i++) {
diff += Math.abs(arr[i] - arr[i-1]);
}
return-Diff;
}
funktion FoodDistribution(arr) {
var N = arr[0];
var hungerLevels = arr.slice(1);
while (N > 0) {
var maxDifference = 0;
// der Index, der als nächstes mit einem Sandwich gefüttert werden soll
var mostNeeded = -1;
for (var i = 0; i < hungerLevels.length - 1; i++) {
var difference = Math.abs(hungerLevels[i + 1] - hungerLevels[i]);
if (difference > maxDifference) {
maxDifference = Differenz;
mostNeeded = (hungerLevels[i + 1] > hungerLevels[i]) ? (i + 1) : i;
}
}
// Jetzt wissen wir, wer das Sandwich so dringend braucht. Verschenke es
if (mostNeeded === -1) {
// die angrenzenden Unterschiede sind alle 0, also hör auf, die
Sandwiches wegzugeben
return 0;
} else {
hungerLevels[mostNeeded] -= 1;
N--;
}
}
sumOfDifferences zurückgeben;
}
Drei Summen
Lassen Sie die FunktionThreeSum (arr) das in arr gespeicherte Array ganzer Zahlen nehmen
und bestimmen, ob drei verschiedene Zahlen (mit Ausnahme des ersten Elements) im Array zum ersten
Element im Array summiert werden können. Zum Beispiel: Wenn arr [8, 2, 1, 4, 10, 5, -1, -1] ist, dann
gibt es tatsächlich drei Sätze von Drillingen, die sich zur Zahl 8 addieren: [2, 1, 5], [4, 5, -1] und [10, -1,
-1]. Ihr Programm sollte den String true zurückgeben, wenn 3 verschiedene Elemente zum ersten
Element addieren, andernfalls sollte Ihr Programm den String false zurückgeben. Das Eingabearray
enthält immer mindestens 4 Elemente.
Beispiele
funktion ThreeSum(arr) {
//Combos generieren
let combos = [];
for (let i = 0, max = Math.pow(2, arr.length); i < max; i++) {
let combo = i.toString(2);
if (digitsSum !== 3) {
fortfahren;
}
//PAD-Ziffern
while (combo.length < arr.length) {
combo = '0' + combo;
}
combos.push(combo);
}
/ /Testkombinationen
let goodCombos = [];
combos.forEach(Funktion(Combo){
let sum = 0;
for (let i = 0; i < combo.length; i++) {
if (combo[i] === '1') {
sum += parseInt(arr[i]);
}
}
if (sum === answer) {
goodCombos.push(combo);
}
});
}
//diesen Funktionsaufruf hier behalten
ThreeSum(readline());
funktion ThreeSum(arr) {
var sum = arr[0];
var-Nummern = arr.slice(1);
Richtiger Pfad
Lassen Sie die Funktion CorrectPath (str ) den übergebenen STR-Parameter lesen, der die
Bewegungen in einem 5x5-Raster von Zellen ab der oberen linken Position darstellt. Die Zeichen in der
Eingabezeichenfolge bestehen vollständig aus: r, l, u, d, ?. Jedes der Zeichen steht für die Richtung, die
innerhalb des Rasters zu nehmen ist, zum Beispiel: r = rechts, l = links, u = oben, d = unten. Ihr Ziel ist
es, zu bestimmen, welche Zeichen die Fragezeichen sein sollten, damit ein Pfad erstellt werden kann, der
von oben links im Raster bis ganz nach unten rechts reicht, ohne zuvor auf Zellen im Raster zu berühren.
Zum Beispiel: Wenn str "r?d?drdd" ist, dann sollte Ihr Programm die endgültige richtige Zeichenfolge
ausgeben, die es ermöglicht, einen Pfad von oben links eines 5x5-Rasters nach unten rechts zu bilden.
Für diese Eingabe sollte Ihr Programm daher den String rrdrdrdd zurückgeben. Es wird immer nur einen
richtigen Pfad geben und es wird immer mindestens ein Fragezeichen innerhalb der Eingabezeichenfolge
geben.
Beispiele
Eingabe: "???rrurdr?"
Ausgang: dddrrurdrd
Eingabe: "drdr??rrddd?"
Ausgabe: drdruurrdddd
function CorrectPath(str) {
//ein Array erstellen, um die Positionen der Fragezeichen zu halten
let blankArray = [];
//Position der Fragezeichen in das Array einfügen
str.split('').forEach((val, ind) => {
if (val === '?') {
blankArray.push(ind);
}
});
//Wir werden jede Möglichkeit ausprobieren, bis wir eine gefunden haben, die
funktioniert. Dies werden 4^num Permutationen sein
let total = Math.pow(4, num);
function CorrectPath(str) {
// Try Paths
combos.forEach(Funktion(Combo){
let comboArray = combo.split('');
let tryPath = '';
for (let i = 0; i < str.length; i++) {
if (str[i] === '?') {
let direction = comboArray.shift();
schalter (Richtung) {
case '0': // right
tryPath += 'r';
pause;
case '1': // nach unten
tryPath += 'd';
pause;
fall '2': // links
tryPath += 'l';
pause;
case '3': // up
tryPath += 'u';
pause;
default:
// Sollte nie passieren
pause;
}
} else {
tryPath += str[i];
}
}
if (pathGood(tryPath)) {
goodPaths.push(tryPath);
}
});
// goodPaths nach der Spezifikation sollte immer nur = == 1 sein, aber dieser
Code kann mehr wahre Fälle behandeln
return goodPaths[0];
let grid = [
[1,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
]; // Ziel 4,4
}
}
funktion findMissingChars(str) {
// zuerst alle möglichen Fälle generieren: Ersetzen ? mit Anweisungen
var permutations = [''];
for (var i = 0; i < str.length; i++) {
if (str[i] === '?') {
var newPermutations = [];
permutations.forEach(Funktion(Permutation) {
newPermutations.push(Permutation + 'u');
newPermutations.push(Permutation + 'd');
newPermutations.push(Permutation + 'l');
newPermutations.push(Permutation + 'r');
});
permutations = newPermutations;
} else {
permutations = permutations.map(permutation => permutation + str[i]);
}
}
function CorrectPath(str) {
var validPaths = findMissingChars(str);
Waagenausgleich
Lassen Sie die Funktion ScaleBalancing (strArr) strArr lesen, die zwei Elemente enthält,
wobei das erste die beiden positiven ganzzahligen Gewichte auf einer Waagschale (linke und rechte
Seite) und das zweite Element eine Liste der verfügbaren Gewichte als positive ganze Zahlen ist. Ihr Ziel
ist es, festzustellen, ob Sie die Waage ausgleichen können, indem Sie die geringste Menge an Gewichten
aus der Liste verwenden, aber höchstens 2 Gewichte verwenden. Zum Beispiel: Wenn strArr ["[5, 9]",
"[1, 2, 6, 7]"] ist, dann bedeutet dies, dass es eine Waagschale mit einem Gewicht von 5 auf der linken
Seite und 9 auf der rechten Seite gibt. Es ist tatsächlich möglich, diese Waage auszugleichen, indem man
eine 6 auf der linken Seite aus der Liste der Gewichte und eine 2 auf der rechten Seite hinzufügt. Beide
Skalen haben jetzt den Wert 11 und sind perfekt ausbalanciert. Ihr Programm sollte eine
kommagetrennte Zeichenfolge der Gewichtungen, die aus der Liste verwendet wurden, in aufsteigender
Reihenfolge zurückgeben, daher sollte Ihr Programm für dieses Beispiel die Zeichenfolge
zurückgeben 2,6
Es wird immer nur eine eindeutige Lösung geben und die Liste der verfügbaren Gewichtungen wird
nicht leer sein. Es ist auch möglich, nur auf einer Seite der Waage zwei Gewichte hinzuzufügen, um sie
auszugleichen. Wenn es nicht möglich ist, die Waage auszugleichen, sollte Ihr Programm die
Zeichenfolge nicht zurückgeben.
Beispiele
funktion ScaleBalancing(strArr) {
/*
Generieren Sie alle möglichen Kombinationen von Gewichten UND Permutationen
von links/rechts - 3^n mal
0 - Gewicht nicht in Gebrauch
1 - Gewicht auf der linken Seite
2 - Gewicht auf der rechten Seite
*/
let combos = [];
for (let i = 0, max = Math.pow(3, weights.length); i < max; i++) {
let combo = i.toString(3);
let numWeights = combo.split('').reduce((a,v) => a + (parseInt(v) > 0 | 0),
0);
// Pad
while (combo.length < weights.length) {
combo = '0' + combo;
}
combos.push(combo);
}
// console.log(combos);
/ /Testkombinationen
let goodCombos = [];
combos.forEach(Funktion(Combo){
let left = objects[0];
let right = Objekte[1];
if (goodCombos.length === 0) {
return 'nicht möglich';
}
// Sortieren Sie zuerst nach Anzahl der verwendeten physischen Gewichte, dann
nach Gesamtgewicht, wenn mehrere Sätze vorhanden sind
goodCombos.sort(Funktion(a, b){
let aCount = a.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
let bCount = b.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
funktion ScaleBalancing(strArr) {
var weights = strArr[1].match(/\d+/g).map(Anzahl);
var weightsOnScale = strArr[0].match(/\d+/g).map(Zahl);
var leftWeight = weightsOnScale[0];
var rightWeight = weightsOnScale[1];
// keine Lösung
return 'nicht möglich';
}
Lassen Sie die FunktionThreeNumbers (str) den übergebenen str -Parameter nehmen und
bestimmen, ob innerhalb jedes Wortes in der Zeichenfolge genau drei eindeutige, einstellige Ganzzahlen
auftreten. Die ganzen Zahlen können überall im Wort erscheinen, aber sie können nicht alle
nebeneinander liegen. Wenn jedes Wort irgendwo genau 3 eindeutige Ganzzahlen enthält, geben Sie die
Zeichenfolge true zurück, andernfalls die Zeichenfolge false. Zum Beispiel: Wenn str "2hell6o3
wor6l7d2" ist, dann sollte Ihr Programm "true" zurückgeben, aber wenn die Zeichenfolge "hell268o
w6or2l4d" ist, dann sollte Ihr Programm "false" zurückgeben, weil alle ganzen Zahlen im ersten Wort
nebeneinander liegen.
Beispiele
words.forEach(Funktion(Wort){
let numbers = 0;
let threeAdnacent = false;
let usedDigits = '';
for (let i = 0; i < word.length; i++) {
// Auf verwendete Ziffern prüfen
if (usedDigits.includes(word[i])) {
// used! fail
result = false;
}
if (DIGITS.includes(word[i])) {
zahlen++;
usedDigits += word[i];
if (numbers === 3) {
if (DIGITS.includes(word[i-1]) && DIGITS.includes(word[i-2])) {
threeAdnacent = true;
}
}
}
// Auf 3 benachbarte vorangestellte Ziffern prüfen
}
} else {
result = false;
}
});
rückgabeergebnis;
}
funktion ThreeNumbers(str) {
var words = str.split(' ');
var numbersOfWords = words.map(word => word.match(/\d+/g));
return true;
}
funktion ThreeNumbers(str) {
Alphabetsuche
Beispiele
Eingabe: „abcdefghijklmnopqrstuvwxyyyy“
Ausgabe: false
Eingabe: "abc123456kmo"
Ausgabe: false
funktion AlphabetSearching(str) {
str = str.toLowerCase();
for (let i = 97; i < 97 + 26; i++) {
let char = String.fromCharCode(i);
if (!str.includes(char)) {
return false;
}
}
return true;
}
funktion AlphabetSearching(str) {
function isAlpha(char) {
return /[A-Za-z]/.test(char);
}
funktion AlphabetSearching(str) {
var foundLetters = [];
for (var i = 0; i < str.length; i++) {
if ( isAlpha(str[i]) && (foundLetters.indexOf(str[i]) === -1) ) {
foundLetters.push(str[i]);
}
}
return foundLetters.length === 26;
}
Beispiele
funktion TimeDifference(strArr) {
//Zeiten halten unsere Zeitunterschiede
let times = [];
lassen Sie newStrArr = strArr.map (val => {
let matches = val.match(/^(\d+):(\d+)([ap]m)$/);
let hours = parseInt(Übereinstimmungen[1], 10);
let minutes = parseInt(entspricht[2], 10);
let half = Übereinstimmungen[3];
if (half === 'am' && hours === 12) {
hours = 0;
}
if (half === 'pm' && hours !== 12) {
stunden += 12;
}
rückkehr (Stunden * 60 + Minuten);
})
.sort((a, b) => { return a - b});
//tricky - zweites Beispiel zeigt, dass wir den frühesten Zeitpunkt sowohl am Tag
0 als auch am Tag 1 berücksichtigen müssen
newStrArr.push(newStrArr[0] + 24 * 60);
// Iterieren Sie über jede spezifische Combo und testen Sie sie
let diff = 0;
let pair = [];
for (let j = 0; j < combo.length; j++) {
if (combo[j] === '1') {
pair.push(timesInSeconds[j]);
}
}
funktion TimeDifference(strArr) {
let array = strArr.map(Wert => {
let matches = value.match(/^(\d+):(\d+)([ap]m)$/);
let h = parseInt(Übereinstimmungen[1], 10);
let m = parseInt(Übereinstimmungen[2], 10);
if (matches[3] === 'am' && h === 12) {
h = 0;
} else if (entspricht[3] === 'pm' && h !== 12) {
h += 12;
}
return (60 * h + m);
}).sort(Funktion(a, b) {
return a - b;
});
array.push(array[0] + 24 * 60);
let times = [];
for (let i = 0; i < array.length - 1; i++) {
times.push(array[i+1] - array[i]);
}
return Math.min(...mal);
}
//diesen Funktionsaufruf hier behalten
TimeDifference(readline());
Dreiecksreihe
Lassen Sie die Funktion TriangleRow(num) num nehmen, die eine positive ganze Zahl ist, die eine
Zeile aus Pascals Dreieck darstellt. Pascals Dreieck beginnt mit einem [1] in der 0. Reihe des Dreiecks.
Dann ist die erste Zeile [1, 1] und die zweite Zeile [1, 2, 1]. Die nächste Zeile beginnt mit 1 und endet
mit 1, und die Innenseite der Zeile wird durch Hinzufügen der k-1 und k-ten Elemente aus der
vorherigen Zeile bestimmt. Die nächste Zeile im Dreieck wäre dann [1, 3, 3, 1] und so weiter. Die
Eingabe wird eine positive ganze Zahl sein und Ihr Ziel ist es, die Summe dieser Zeile zurückzugeben.
Zum Beispiel: Wenn num 4 ist, dann sollte Ihr Programm die Summe von 1 + 4 + 6 + 4 + 1 zurückgeben,
was 16 ist.
Beispiele
Eingang: 1
Ausgang: 2
Eingang: 2
Ausgang: 4
funktion TriangleRow(num) {
return Math.pow(2, num);
}
console.log(TriangleRow(5));
funktion TriangleRow(num) {
}
//diesen Funktionsaufruf hier behalten
TriangleRow(readline());
// Erhalte die n-te Zeile und die k-te Spalte des Pascal-Dreiecks
funktion pascalTriangle(n, k) {
if (n === 0) return 1;
if (k === 0 || k === n) return 1;
return pascalTriangle(n - 1, k - 1) + pascalTriangle(n - 1, k);
}
funktion TriangleRow(num) {
// die einfache Antwort - sie summiert sich immer zu n^2
//return num * num;
Vokalquadrat
a b c d
e i k r
o u f j
Innerhalb dieser Matrix gibt es ein 2x2 Quadrat von Vokalen, das in der zweiten Zeile und ersten Spalte
beginnt, nämlich ei, ou. Wenn ein 2x2-Quadrat von Vokalen gefunden wird, sollte Ihr Programm die
obere linke Position (Zeile-Spalte) des Quadrats zurückgeben, also sollte Ihr Programm für dieses
Beispiel 1-0 zurückgeben. Wenn kein 2x2-Vokalquadrat vorhanden ist, geben Sie die Zeichenfolge nicht
gefunden zurück. Wenn es mehrere Vokalquadrate gibt, geben Sie das Vokalquadrat zurück, das sich an
der obersten linken Position in der gesamten Matrix befindet. Die Eingabematrix wird mindestens die
Größe 2x2 haben.
Beispiele
funktion Vokalquadrat(strArr) {
funktion isVokal(Buchstabe) {
const VOKALE = 'aeiou';
return VOWELS.includes(Brief);
}
}
// Überprüfen Sie, ob jeder Buchstabe in der gegebenen Matrix ein Vokal ist
funktion allVokale(Matrix) {
return matrix.every(row => row.every(letter => 'aeiou'.indexOf(letter) !== -1));
}
funktion Vokalquadrat(strArr) {
var matrix = strArr.map(row => row.split(''));
Nächstliegender Feind
Lassen Sie die Funktion ClosestEnemy(arr) das in arr gespeicherte Zahlenarray nehmen und
geben Sie von der Position im Array, an der eine 1 steht, die Anzahl der Felder zurück, die Sie entweder
nach links oder rechts bewegen müssen, um einen Feind zu erreichen, der durch eine 2 dargestellt wird.
Zum Beispiel: Wenn arr [0, 0, 1, 0, 0, 2, 0, 2] ist, dann sollte Ihr Programm 3 zurückgeben, weil der
nächste Feind (2) 3 Räume von der 1 entfernt ist. Das Array enthält eine beliebige Anzahl von 0en und
2en, aber nur eine einzige 1. Es darf auch keine 2 enthalten, wobei in diesem Fall Ihr Programm eine 0
zurückgeben sollte.
Beispiele
Eingang: [1, 0, 0, 0, 2, 2, 2]
Ausgang: 4
Eingabe: [2, 0, 0, 0, 2, 2, 1, 0]
Ausgabe: 1
funktion ClosestEnemy(arr) {
if (!arr.includes(2)) {
return 0;
}
loc1 = arr.findIndex(val => {
return val === 1;
});
funktion ClosestEnemy(arr) {
// Search right
let deltaRight = undefined;
for (let i = hero+1; i < arr.length; i++) {
if (arr[i] === 2) { //Feind gefunden
deltaRight = i - hero;
pause;
}
}
// Suche links
let deltaLeft = undefined;
for (let i = hero-1; i >= 0; i--) {
if (arr[i] === 2) { //Feind gefunden
deltaLeft = hero - i;
pause;
}
}
funktion ClosestEnemy(arr) {
// index of 1
var me = arr.indexOf(1);
var minimumDistance = arr.length;
Nächstliegender Feind II
0 0 0 0
1 0 0 0 0 0 0
0 2 0
0 2 Für diese Eingabe sollte Ihr Programm 2 zurückgeben, weil der nächste Feind
(2) 2 Räume von der 1 entfernt ist, indem Sie sich nach links bewegen, um auf die andere Seite zu
wickeln und dann einmal nach unten zu gehen.
Das Array enthält eine beliebige Anzahl von 0en und 2en, aber nur eine einzige 1. Es darf auch keine 2
enthalten, wobei in diesem Fall Ihr Programm eine 0 zurückgeben sollte.
Beispiele
funktion ClosestEnemyII(strArr) {
//step one - return 0 if there is no 2 in the array
let twosies = strArr.filter(val => {
return val.includes("2");
});
if (!twosies.length) {
return 0;
}
//Schritt zwei - die Koordinaten der 1 erhalten (targetX, targetY)
targetY = strArr.findIndex(val => {
return val.includes('1');
});
targetX = strArr[targetY].search(/1/);
//Schritt drei finde den kleinsten Weg zu einer 2
let res = strArr.length * strArr[0].length;
//--------------------helfer----------------------
//trotz des Namens, Verwendung für Spalten- und Zeilenabstand
funktion rowDist(y, x, len) {
return Math.min(Math.abs(x - y), Math.abs(y - x + len));
}
funktion ClosestEnemyII(strArr) {
if (enemies.length === 0) {
return 0;
}
//console.log(Feinde);
return closestDistance;
// Finde den Abstand zwischen zwei Elementen mit vorgegebenen [Zeile, Spalte] Indizes
funktion getDistance(matrixSize, indices1, indices2) {
var rowDistance = Math.min(Math.abs(indices2[0] - indices1[0]),
Math.abs(indices1[0] - (indices2[0] - matrixSize)));
var columnDistance = Math.min(Math.abs(indices2[1] - indices1[1]),
Math.abs(indices1[1] - (indices2[1] - matrixSize)));
return rowDistance + columnDistance;
}
funktion ClosestEnemyII(strArr) {
var matrix = strArr.map(line => line.split('').map(Number));
var minDistance = matrix.length * 2;
// Standort von mir: 1
var meIndices;
// Standorte der Feinde: 2
var enemiesIndices = [];
Lassen Sie die Funktion NumberStream (str) den übergebenen Parameter str übernehmen, der
die Zahlen 2 bis 9 enthält, und bestimmen Sie, ob es einen aufeinanderfolgenden Strom von Ziffern von
mindestens N Länge gibt, wobei N der tatsächliche Ziffernwert ist. Wenn ja, geben Sie die
Zeichenfolge true zurück, andernfalls geben Sie die Zeichenfolge false zurück. Zum Beispiel:
Wenn str "6539923335" ist, sollte Ihr Programm die Zeichenfolge true zurückgeben, da es einen
aufeinanderfolgenden Stream von 3 der Länge 3 gibt. Die Eingabezeichenfolge enthält immer
mindestens eine Ziffer.
Beispiele
Eingabe: "5556293383563665"
Ausgabe: falsch
Eingabe: "57888888882339999"
Ausgabe: wahr
funktion NumberStream(str) {
for (let i = 2; i < 10; i++) {
let iChar = i.toString();
let needle = iChar.repeat(i);
if (str.indexOf(needle) !== -1) {
return true;
}
}
// code goes here
return false;
funktion NumberStream(str) {
funktion NumberStream(str) {
//Muster zuerst generieren
var patterns = [];
for (var i = 1; i < 10; i++) {
patterns.push(String(i).repeat(i));
}
Größte Vier
Lassen Sie die FunktionLargestFour (arr) das Array der in arr gespeicherten ganzen Zahlen
nehmen und die vier größten Elemente finden und ihre Summe zurückgeben. Zum Beispiel:
Wenn arr [4, 5, -2, 3, 1, 2, 6, 6] ist, dann sind die vier größten Elemente in diesem Array 6, 6, 4 und 5
und die Gesamtsumme dieser Zahlen ist 21. Ihr Programm sollte also 21 zurückgeben. Wenn es weniger
als vier Zahlen im Array gibt, sollte Ihr Programm die Summe aller Zahlen im Array zurückgeben.
Beispiele
Eingabe: [0, 0, 2, 3, 7, 1]
Ausgabe: 13
funktion LargestFour(arr) {
let newArr = arr.sort((val1, val2) => {
return val2 - val1;
})
.splice(0, 4);
return newArr.reduce((val1, val2) => {
return val1 + val2;
}, 0);
}
funktion LargestFour(arr) {
funktion LargestFour(arr) {
return arr.sort((a, b) => a < b).slice(0, 4).reduce((sum, v) => sum + v, 0);
}
Eindeutige Zeichen
Beispiele
Eingabe: "12334bbmma:=6"
Ausgabe: wahr
Eingabe: "eeeemmmmmmmmm1000"
Ausgabe: false
funktion DistinctCharacters(str) {
let mySet = new Set(str.split(''));
return mySet.size >= 10 ? true : false
}
//diesen Funktionsaufruf hier behalten
DistinctCharacters(readline());
funktion DistinctCharacters(str) {
funktion DistinctCharacters(str) {
var differcts = {};
Fragezeichen
Lassen Sie die FunktionQuestionsMarks (str) den Parameter str string verwenden, der
einstellige Zahlen, Buchstaben und Fragezeichen enthält, und prüfen Sie, ob sich zwischen jedem Paar
von zwei Zahlen genau 3 Fragezeichen befinden, die sich zu 10 addieren. Wenn ja, dann sollte Ihr
Programm die Zeichenfolge true zurückgeben, andernfalls sollte es die Zeichenfolge false zurückgeben.
Wenn es keine zwei Zahlen gibt, die 10 in der Zeichenfolge ergeben, sollte Ihr Programm
auch false zurückgeben.
Zum Beispiel: Wenn str "arrb6???4xxbl5???eee5" ist, dann sollte Ihr Programm true zurückgeben,
weil es genau 3 Fragezeichen zwischen 6 und 4 und 3 Fragezeichen zwischen 5 und 5 am Ende der
Zeichenfolge gibt.
Beispiele
Eingang: "aa6?9"
Ausgang: false
Input: „acc?7??sss? 3rr1?????5“
Output: true
function QuestionsMarks(str) {
let numPlaces = [];
//Annahme von false, bis Flag auf true gestellt wird
let flag = false;
//Erhalte ein Array von Stellen in Zeichenketten, die ganze Zahlen enthalten
for (let i = 0, len = str.length; i < len; i++) {
if (/\d/.test(str[i])) {
numPlaces.push(i);
}
}
Kamelkoffer
Lassen Sie die Funktion CamelCase(str) den übergebenen Parameter str im richtigen
Kamelgehäuseformat zurückgeben, wobei der erste Buchstabe jedes Wortes großgeschrieben wird (ohne
den ersten Buchstaben). Die Zeichenfolge enthält nur Buchstaben und eine Kombination von
Trennzeichen-Satzzeichen, die jedes Wort trennen.
Zum Beispiel: Wenn str "BOB LOVES-CODING" ist, dann sollte Ihr Programm den String
bobLovesCoding zurückgeben.
Beispiele
funktion CamelCase(str) {
let strArr = str.split(/[^a-zA-Z]/);
strArr = strArr.map((val, ind) => {
val = val.toLowerCase();
if (ind) {
valArr = val.split('');
valArr[0] = valArr[0].toUpperCase();
return valArr.join('');
}
return val;
})
return strArr.join('');
}
ASCII-Konvertierung
Beispiele
Lassen Sie die FunktionSimpleEvens (num) prüfen, ob jede einzelne Zahl im übergebenen
Parameter gerade ist. Wenn ja, geben Sie die Zeichenfolge true zurück, andernfalls geben Sie die
Zeichenfolge false zurück. Zum Beispiel: Wenn num 4602225 ist, sollte Ihr Programm die
Zeichenfolge false zurückgeben, da 5 keine gerade Zahl ist.
Beispiele
Eingang: 2222220222
Ausgang: true
Eingang: 20864646452
Ausgang: false
funktion SimpleEvens(num) {
return num.toString(10).search(/[13579]/) === -1 ? 'true' : 'false';
}
SimpleEvens(readline());
Schlangenetui
Lassen Sie die Funktion SnakeCase (str) den übergebenen str-Parameter im richtigen Snake-
Case-Format zurückgeben, wobei jedes Wort klein geschrieben und durch einen Unterstrich von
benachbarten Wörtern getrennt ist. Die Zeichenfolge enthält nur Buchstaben und eine Kombination von
Trennzeichen-Satzzeichen, die jedes Wort trennen.
Zum Beispiel: Wenn str "BOB LOVES-CODING" ist, dann sollte Ihr Programm die
Zeichenfolge bob_loves_coding zurückgeben.
Beispiele
SnakeCase(readline());
Kreuzung finden
Lassen Sie die Funktion FindIntersection (strArr) das in strArr gespeicherte Strings-Array
lesen, das 2 Elemente enthält: Das erste Element stellt eine Liste von kommaseparierten Zahlen dar, die
in aufsteigender Reihenfolge sortiert sind, das zweite Element stellt eine zweite Liste von
kommaseparierten Zahlen dar (ebenfalls sortiert). Ihr Ziel ist es, eine durch Kommas getrennte
Zeichenfolge zurückzugeben, die die Zahlen enthält, die in Elementen von strArr in sortierter
Reihenfolge vorkommen. Wenn es keine Kreuzung gibt, geben Sie die Zeichenfolge false zurück.
Zum Beispiel: Wenn strArr ["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"] enthält, sollte die Ausgabe "1,4,13"
zurückgeben, da diese Zahlen in beiden Zeichenfolgen erscheinen. Das angegebene Array ist nicht leer,
und jede Zeichenfolge innerhalb des Arrays besteht aus Zahlen, die in aufsteigender Reihenfolge sortiert
sind und negative Zahlen enthalten können.
Beispiele
Lassen Sie die FunktionSumMultiplier (arr) das in arr gespeicherte Zahlenarray nehmen und
die Zeichenfolge true zurückgeben, wenn zwei beliebige Zahlen multipliziert werden können, sodass die
Antwort größer als das Doppelte der Summe aller Elemente im Array ist. Wenn nicht, geben Sie die
Zeichenfolge false zurück. Zum Beispiel: Wenn arr [2, 5, 6, -6, 16, 2, 3, 6, 5, 3] ist, dann ist die
Summe all dieser Elemente 42 und verdoppelt 84. Es gibt zwei Elemente im Array, 16 * 6 = 96 und 96
ist größer als 84, daher sollte Ihr Programm die Zeichenfolge true zurückgeben.
Beispiele
Eingabe: [2, 2, 2, 2, 4, 1]
Ausgabe: falsch
String-Zusammenführung
Lassen Sie die FunktionStringMerge (str) den übergebenen str -Parameter lesen, der eine
große Zeichenfolge alphanumerischer Zeichen mit einem einzelnen Sternchenzeichen enthält, das die
Zeichenfolge gleichmäßig in zwei separate Zeichenfolgen aufteilt. Ihr Ziel ist es, eine neue Zeichenfolge
zurückzugeben, indem Sie die Zeichen an den entsprechenden Stellen in beiden Zeichenfolgen paaren.
Zum Beispiel: Wenn str "abc1 *kyoo" ist, dann sollte Ihr Programm die
Zeichenfolge akbyco1o zurückgeben, weil a mit k, b mit y usw. paart. Die Zeichenfolge wird immer
gleichmäßig mit dem Stern in der Mitte geteilt.
Beispiele
Eingabe: „aaa*bbb“
Ausgabe: ababab
Eingabe: "123hg*aaabb"
Ausgabe: 1a2a3ahbgb
funktion StringMerge(str) {
const cleanString = str.replace(/[^\w*]/g, '');
const len = (cleanString.length - 1) / 2;
let newString = '';
const arr = str.split('*');
Eins dekrementiert
Lassen Sie die FunktionOneDecremented (str) zählen, wie oft eine Ziffer erscheint, die genau
eine weniger als die vorherige Ziffer ist. Zum Beispiel: Wenn str "5655984" ist, dann sollte Ihr
Programm 2 zurückgeben, weil 5 direkt nach 6 und 8 direkt nach 9 erscheint. Die Eingabe enthält immer
mindestens 1 Ziffer.
Beispiele
Eingang: "56"
Ausgang: 0
Eingang: "9876541110"
Ausgang: 6
function OneDecremented(num) {
let counter = 0;
let arr = num.toString().split('');
arr.forEach((val, ind) => {
if (parseInt(val, 10) - parseInt(arr[ind + 1], 10) === 1) {
zähler++;
}
})
rückgabezähler;
}
Elementzusammenführung
Lassen Sie die Funktion ElementMerger (arr) das in arr gespeicherte Array positiver
Ganzzahlen nehmen und den folgenden Algorithmus ausführen: Ermitteln Sie kontinuierlich die
Differenz benachbarter Ganzzahlen, um ein neues Array ganzer Zahlen zu erstellen, tun Sie dasselbe für
das neue Array, bis eine einzige Zahl übrig ist, und geben Sie diese Zahl zurück. Zum Beispiel:
Wenn arr [4, 5, 1, 2, 7] ist, dann ergibt die Differenz jedes Elementpaares das folgende neue Array: [1,
4, 1, 5]. Machen Sie dann dasselbe für dieses neue Array, um [3, 3, 4] -> [0, 1] -> 1 zu erzeugen. In
diesem Beispiel sollte Ihr Programm also die Zahl 1 zurückgeben, denn das ist es, was am Ende übrig
bleibt.
Beispiele
Eingang: [1, 1, 1, 2]
Ausgang: 1
funktion ElementMerger(arr) {
if (arr.length === 1) {
return arr[0];
} else {
newArr = [];
arr.forEach((val, ind) => {
if (ind < arr.length - 1) {
newArr.push(Math.abs(val - arr[ind + 1]));
}
})
return ElementMerger(newArr);
}
}
ElementMerger(readline());
GCF
Lassen Sie die Funktion GCF(arr) das in arr gespeicherte Zahlenarray, das immer nur zwei positive
ganze Zahlen enthält, nehmen und den größten gemeinsamen Faktor von ihnen zurückgeben. Zum
Beispiel: Wenn arr [45, 12] ist, sollte Ihr Programm 3 zurückgeben. Es wird immer zwei Elemente im
Array geben und sie werden positive ganze Zahlen sein.
Beispiele
Eingang: [1, 6]
Ausgang: 1
Seriennummer
Lassen Sie die Funktion SerialNumber(str) den übergebenen Parameter str übernehmen und
bestimmen, ob es sich um eine gültige Seriennummer mit den folgenden Einschränkungen handelt:
1. Es muss drei Sätze mit jeweils drei Ziffern (1 bis 9) enthalten, die durch einen Punkt getrennt sind.
2. Der erste Satz von Ziffern muss sich zu einer geraden Zahl addieren.
3. Der zweite Ziffernsatz muss sich zu einer ungeraden Zahl addieren.
4. Die letzte Ziffer in jedem Satz muss größer sein als die beiden vorherigen Ziffern im selben Satz.
Wenn alle oben genannten Einschränkungen innerhalb der Zeichenfolge erfüllt sind, sollte Ihr Programm
die Zeichenfolge true zurückgeben, andernfalls sollte Ihr Programm die Zeichenfolge false
zurückgeben. Zum Beispiel: Wenn str "224.315.218" ist, dann sollte Ihr Programm "true" zurückgeben.
Beispiele
Eingabe: "11.124.667"
Ausgabe: falsch
Eingabe: "114.568.112"
Ausgabe: wahr
funktion SerialNumber(str) {
//Format der Zeichenfolge prüfen
let goal = /^\d{3}\.\d{3}\.\d{3}$/
if (!goal.test(str)) {
return 'false';
}
//Transformieren Sie die Zeichenfolge in drei Arrays mit jeweils drei Ziffern
let arr = str.split(/\./).map(val => {
return val.split('').map(val2 => {
return parseInt(val2, 10);
});
});
String-Perioden
Lassen Sie die Funktion StringPeriods(str) den übergebenen str -Parameter nehmen und
bestimmen, ob es eine Teilzeichenfolge K gibt, die N > 1 Mal wiederholt werden kann, um die
Eingabezeichenfolge genau so zu erzeugen, wie sie erscheint. Ihr Programm sollte die längste
Teilzeichenfolge K zurückgeben, und wenn es keine gibt, sollte es die Zeichenfolge -1 zurückgeben.
Beispiel: Wenn str "abcababcababcab" ist, sollte Ihr Programm abcab zurückgeben, da dies die längste
Teilzeichenfolge ist, die dreimal wiederholt wird, um die letzte Zeichenfolge zu erstellen. Ein weiteres
Beispiel: Wenn str "ababababab" ist, sollte Ihr Programm ababab zurückgeben, da es die längste
Teilzeichenfolge ist. Wenn die Eingabezeichenfolge nur ein einzelnes Zeichen enthält, sollte Ihr
Programm die Zeichenfolge -1 zurückgeben.
Beispiele
Eingang: „abcxabc“
Ausgang: -1
Input: „affedaaffed“
Output: -1
function StringPeriods(str) {
// we will only use lengths of substrings that divide evenly into str
const len = str.length;
const pivot = Math.max(Math.trunc(Math.sqrt(len)), len);
for (let i = 2; i <= pivot; i++) {
if (len % i === 0) {
const block = str.slice(0, len / i);
if (block.repeat(i) === str) {
rücklaufsperre;
}
}
}
return -1;
}
Palindrom-Swapper
Beispiele
Eingabe: „anna“
Ausgabe: anna
Eingabe: "kyaak"
Ausgabe: kayak
funktion PalindromeSwapper(str) {
let inputArray = str.split('');
let strLen = inputArray.length;
let palTester = function(arr) {
let len = arr.length;
for (let i = 0; i < len; i++) {
if (arr[i] !== arr[len - (1 + i)]) {
return false;
}
}
return true;
}
Halterungen entfernen
Lassen Sie die Funktion RemoveBrackets (str) den übergebenen Parameter str string
übernehmen, der nur die Zeichen "(" und ")" enthält, und bestimmen Sie die Mindestanzahl der
Klammern, die entfernt werden müssen, um eine Zeichenfolge korrekt übereinstimmender Klammern zu
erstellen. Zum Beispiel: Wenn str "(()))" ist, dann sollte Ihr Programm die Zahl 1 zurückgeben. Die
Antwort könnte möglicherweise 0 sein, und es wird immer mindestens einen Satz passender Klammern
in der Zeichenfolge geben.
Beispiele
Input: "(())()(("
Output: 3
Eingang: "(()("
Ausgang: 2
funktion RemoveBrackets(str) {
let throwouts = 0;
let counter = 0;
let arr = str.split('');
let len = arr.length;
Befehlszeile
Lassen Sie die Funktion CommandLine(str) den übergebenen Parameter str übernehmen, der die
Parameter darstellt, die einem Befehl in einem alten PDP-System zugewiesen wurden. Die Parameter
sind alphanumerische Token (ohne Leerzeichen), gefolgt von einem Gleichheitszeichen und ihrem
entsprechenden Wert. Mehrere Parameter/Wertepaare können auf der Befehlszeile mit einem einzigen
Leerzeichen zwischen jedem Paar platziert werden. Parametertoken und -werte dürfen keine
Gleichheitszeichen enthalten, Werte können jedoch Leerzeichen enthalten. Der Zweck der Funktion
besteht darin, die Parameter und Werte zu isolieren, um eine Liste von Parameter- und Wertlängen
zurückzugeben. Es muss sein Ergebnis im gleichen Format und in der gleichen Reihenfolge liefern,
indem es jeden Eintrag (Token und Werte) durch seine entsprechende Länge ersetzt.
Beispiele
Sternebewertung
Lassen Sie die Funktion StarRating(str) den STR-Parameter übergeben, der eine
durchschnittliche Bewertung zwischen 0,00 und 5,00 ist, und wandeln Sie diese Bewertung in eine Liste
von 5 Bildnamen um, die in einer Benutzeroberfläche angezeigt werden, um die Bewertung als eine Liste
von Sternen und halben Sternen darzustellen. Die Bewertungen sollten auf die nächste Hälfte
aufgerundet werden. Es stehen 3 Bilddateinamen zur Verfügung: "full.jpg", "half.jpg", "empty.jpg". Die
Ausgabe ist der Name der 5 Bilder (ohne die Erweiterung), von links nach rechts, durch Leerzeichen
getrennt. Zum Beispiel: Wenn str "2.36" ist, dann sollte dies durch das folgende Bild angezeigt
werden:
So sollte Ihr Programm den String "full full half empty empty" zurückgeben.
Beispiele
Eingang: „0.38“
Ausgang: halb leer leer leer leer
Eingang: "4.5"
Ausgang: voll voll voll halb voll
funktion StarRating(str) {
let num = (Math.round(parseFloat(str) * 2)) / 2;
let starString = '';
let half = !(Math.trunc(num) === num);