Documente Academic
Documente Profesional
Documente Cultură
Puneți funcția FirstReverse(str) să preia parametrul str transmis și să returneze șirul în ordine
inversată. De exemplu: dacă șirul de intrare este "Hello World and Coders", atunci programul dvs. ar
trebui să returneze șirul sredoC dna dlroW olleH.
Exemple
Intrare: "coderbyte"
Ieșire: etybredoc
funcția FirstReverse(str) {
returnați newString;
}
funcția FirstReverse(str) {
Codul merge aici
returnare str.split('').reverse().join('');
Exemple
Intrare: 4
Ieșire: 24
Intrare: 8
Ieșire: 40320
funcția FirstFactorial(num) {
fie factorial = 1;
returnare factorială;
funcția FirstFactorial(num) {
să răspundă = 1;
pentru (fie index = 1; index <= num; index++) {
răspuns * = index;
}
răspuns de întoarcere;
Puneți funcția LongestWord(sen) să preia parametrul sen transmis și să returneze cel mai mare
cuvânt din șir. Dacă există două sau mai multe cuvinte care au aceeași lungime, returnați primul cuvânt
din șirul cu acea lungime. Ignorați punctuația și presupuneți că sen nu va fi gol.
Exemple
funcția LongestWord(sen) {
sen = sen.trim();
sen = sen.replace(/[^a-zA-Zsd]/g, '');
întoarcere arr.shift();
let validCharacters =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
fie maxLength = 0;
fie cel mai lungCuvânt = '';
}
}
funcția LongestWord(sen) {
var tăiat = sen.replace(/[^\w]/g, ' ');
cuvinte var = trimmed.split(/\s+/);
var longestWord = words.sort(function(a, b) {return b.length - a.length;}) [0];
întoarceți cel mai lungCuvânt;
}
Exemple
Intrare: "hello*3"
Ieșire: Ifmmp*3
Intrare: "vremuri distractive!"
Ieșire: gvO Ujnft!
funcția LetterChanges(str) {
funcția LetterChanges(str) {
Capitlize vocale
pentru (fie i = 0; i < newString.length; i++) {
if (vocale.includes(newString[i])) {
finalString += newString[i].toUpperCase();
} altceva {
finalString += newString[i];
}
}
returnează finalString;
funcția LetterChanges(str) {
str = str.replace(/[a-zA-Z]/g, function(ch) {
dacă (ch === "z") returnează "a";
altfel dacă (ch === "Z") returnează "A";
altfel returnați String.fromCharCode(ch.charCodeAt(0) + 1);
});
Funcția SimpleAdding (num) adună toate numerele de la 1 la num. De exemplu: dacă intrarea este
4, atunci programul dvs. ar trebui să returneze 10, deoarece 1 + 2 + 3 + 4 = 10. Pentru cazurile de
testare, parametrul num va fi orice număr de la 1 la 1000.
Exemple
Intrare: 12
Ieșire: 78
funcția SimpleAdding(num) {
dacă (num === 1) {
returnarea 1;
}
altfel {
return num + SimpleAdding(num -1);
}
}
funcția SimpleAdding(num) {
fie suma = 0;
pentru (i = 1; i <= num; i++) {
suma += i;
}
suma returnată;
funcția SimpleAdding(num) {
Scrisoare cu majusculă
Exemple
funcția LetterCapitalize(str) {
str. de întoarcere;
funcția LetterCapitalize(str) {
returnați newString;
}
funcția LetterCapitalize(str) {
Simboluri simple
Exemple
Intrare: "+d+=3=+s+"
Ieșire: adevărat
Intrare: "f++d+"
Ieșire: false
funcția SimpleSymbols(str) {
if (/^[a-zA-Z]/.test(str) || /[a-zA-Z]$/.test(str)) {
returnează fals;
}
altfel dacă (/[^+][a-zA-Z]/.test(str) || /[a-zA-Z][^+]/.test(str)) {
returnează fals;
}
altfel {
întoarcere adevărată;
}
funcția SimpleSymbols(str) {
Verificați Nums
Puneți funcția CheckNums(num1,num2) să ia ambii parametri trecuți și să returneze șirul true dacă num2
este mai mare decât num1, altfel returnați șirul false. Dacă valorile parametrilor sunt egale între ele,
returnați șirul -1.
Exemple
VEZI PROVOCAREA
funcția CheckNums(num1,num2) {
funcția CheckNums(num1,num2) {
dacă (num2 > num1) {
întoarcere adevărată;
} altfel dacă (num1 === num2) {
returnează "-1";
} altceva {
returnează fals;
}
funcția CheckNums(num1,num2) {
Conversia timpului
Puneți funcția TimeConvert (num) să ia parametrul num transmis și să returneze numărul de ore și
minute pe care parametrul le convertește în (adică. dacă num = 63, atunci ieșirea ar trebui să fie 1:3).
Separați numărul de ore și minute cu un colon.
Exemple
Intrare: 126
Ieșire: 2:6
funcția TimeConvert(num) {
var ore = Math.floor(num/60);
var minute = num % 60;
Var Str = ore + ":" + minute;
str. de întoarcere;
}
Păstrați această funcție sunați aici
pentru a vedea cum să introduceți argumente în JavaScript, derulați în jos
TimeConvert(readline());
funcția TimeConvert(num) {
funcția TimeConvert(num) {
Supă alfabet
Exemple
Intrare: "coderbyte"
Ieșire: bcdeeorty
Intrare: "hooplah"
Ieșire: ahhloop
funcția AlphabetSoup(str) {
funcția AlphabetSoup(str) {
funcția AlphabetSoup(str) {
Verificare AB
Puneți funcția ABCheck(str) să ia parametrul str transmis și să returneze șirul adevărat dacă
caracterele a și b sunt separate de exact 3 locuri oriunde în șir cel puțin o dată (adică. "Lane Borrowed"
ar rezulta adevărat, deoarece există exact trei caractere între A și B). În caz contrar, returnați șirul false.
Exemple
returnare patt.test(str);
funcția ABCheck(str) {
dacă (str.length < 5) {
returnează fals;
}
consola.log(str.length);
returnează fals;
funcția ABCheck(str) {
Funcția VowelCount(str) ia parametrul str string transmis și returnează numărul de vocale pe care
le conține șirul (adică."Toate vacile mănâncă iarbă și moo" s-ar întoarce 8). Nu numărați y ca vocală
pentru această provocare.
Exemple
Intrare: "salut"
Ieșire: 2
Intrare: "coderbyte"
Ieșire: 3
funcția VowelCount(str) {
funcția VowelCount(str) {
funcția VowelCount(str) {
Codul merge aici
return str.split('').filter(function(ch) {
returnează ['a', 'e', 'i', 'o', 'u'].indexOf(ch.toLowerCase()) > -1;
}).lungime;
Număr de cuvinte
Puneți funcția WordCount(str) să ia parametrul str string transmis și să returneze numărul de cuvinte
pe care le conține șirul (de exemplu, "Nu mâncați niciodată grâu mărunțit sau prăjitură" ar returna 6).
Cuvintele vor fi separate prin spații unice.
Exemple
răspuns de întoarcere;
funcția WordCount(str) {
retur str.split(' ').length;
}
funcția WordCount(str) {
Ex Oh
Puneți funcția ExOh(str) să ia parametrul str transmis și să returneze șirul true dacă există un
număr egal de x și o, altfel returnați șirul false. Numai aceste două litere vor fi introduse în șir, fără
semne de punctuație sau numere. De exemplu: dacă str este "xooxxxxooxo", atunci ieșirea ar trebui să
returneze falsă, deoarece există 6 x și 5 o.
Exemple
Intrare: "xooxxo"
Ieșire: adevărat
Intrare: "x"
Ieșire: false
funcția ExOh(str) {
var regExPatternX = /x/gi;
var regExPatternO = /o/gi;
funcția ExOh(str) {
fie xCount = 0;
fie oCount = 0;
funcția ExOh(str) {
Palindrom
Puneți funcția Palindrome(str) să ia parametrul str transmis și să returneze șirul true dacă parametrul
este un palindrom, (șirul este același înainte ca și înapoi) altfel returnați șirul false. De exemplu:
"mașină de curse" este, de asemenea, "mașină de curse" înapoi. Punctuația și numerele nu vor face parte
din șir.
Exemple
Intrare: "ochi"
Ieșire: adevărat
funcția Palindrome(str) {
modificat = str.replace(/W/g,"");
funcția Palindrome(str) {
funcția Palindrome(str) {
Arith Geo
Exemple
Intrare: [5,10,15]
Ieșire: Aritmetică
Intrare: [2,4,16,24]
Ieșire: -1
funcția ArithGeo(arr) {
var len = arondisment;
var arithK = arr[1] - arr[0];
var geoK = arr[1] / arr[0];
întoarcere -1;
}
funcția ArithGeo(arr) {
dacă (aritmetică) {
returnați "aritmetica";
}
dacă (geometric) {
returnați "Geometric";
}
întoarcere -1;
funcția ArithGeo(arr) {
Adunare matrice I
Setați funcția ArrayAdditionI(arr) să preia matricea de numere stocate în arr și să returneze șirul
true dacă orice combinație de numere din matrice (excluzând cel mai mare număr) poate fi adunată
pentru a egala cel mai mare număr din matrice, altfel returnați șirul false. De exemplu: dacă arr
conține [4, 6, 23, 10, 1, 3] ieșirea ar trebui să returneze true deoarece 4 + 6 + 10 + 3 = 23. Matricea nu
va fi goală, nu va conține toate aceleași elemente și poate conține numere negative.
Exemple
Intrare: [5,7,16,1,2]
Ieșire: false
Intrare: [3,5,-1,8,12]
Ieșire: adevărată
funcția ArrayAdditionI(arr) {
ținta VAR;
var addArr = arrayPrep(arr);
var len = addArr.length;
var permNum = Math.pow(2, len);
console.log('test0 ', permNum, target, addArr);
funcția arrayPrep(arr2) {
arr.sort(function(a, b){
returnează a - b
});
țintă = arr2.pop()
Returnare arr2
}
}
Păstrați această funcție sunați aici
pentru a vedea cum să introduceți argumente în JavaScript, derulați în jos
ArrayAdditionI(readline());
funcția ArrayAdditionI(arr) {
fie suma = 0;
pentru (fie j = 0; j < combo-uri[i].length; j++) {
dacă (combo-uri[i][j] === '1') {
suma += arr[j];
}
}
funcția ArrayAdditionI(arr) {
Numărul literelor I
Funcția LetterCountI(str) preia parametrul str transmis și returnează primul cuvânt cu cel mai
mare număr de litere repetate. De exemplu: "Astăzi, este cea mai măreață zi vreodată!" ar trebui să se
întoarcă cel mai mare pentru că are 2 e (și 2 t) și vine înainte de a avea și 2 e. Dacă nu există cuvinte cu
litere repetate, returnați -1. Cuvintele vor fi separate prin spații.
Exemple
dacă (newarr[0][1] == 1) {
întoarcere -1;
}
altfel {
returnează newarr[0][0];
}
}
funcția LetterCountI(str) {
fie bestCount = 0;
fie bestWord = '';
funcția LetterCountI(str) {
Exemple
funcția lonely(arr) {
var len = arondisment;
var testobj = {};
ieșire var = [];
numărul var = 0;
pentru (var i = 0; i < len; i++) {
titular var = arr[i];
dacă (!testobj[holder]) {
testobj[holder] = adevărat;
output[count++] = titular;
}
}
Returnarea ieșirii
}
}
funcția SecondGreatLow(arr) {
funcția SecondGreatLow(arr) {
returnați al doileaCel mai mic + " " " + al doileaCel mai mare;
}
Diviziune înșirată
Exemple
funcția DivisionStringified(num1,num2) {
funcția DivisionStringified(num1,num2) {
rezultatul returnării;
}
Numărarea minutelor I
Exemple
Intrare: "12:30pm-12:00am"
Ieșire: 690
Intrare: "1:23am-1:08am"
Ieșire: 1425
Soluții pentru numărarea minutelor I
JAVASCRIPT
VEZI PROVOCAREA
funcția CountingMinutesI(str) {
var seps = str.split("-");
var col1 = seps[0].indexOf(":");
var col2 = seps[1].indexOf(":");
var hour1 = parseInt(seps [0].slice(0, col1));
var hour2 = parseInt(seps[1].slice(0, col2));
var min1 = parseInt(seps[0].slice(col1+1, col1+3));
var min2 = parseInt(seps[1].slice(col2+1, col2+3));
var ampm1 = seps[0].slice(-2);
var ampm2 = seps[1].slice(-2);
dacă (ampm1 == "pm" &&; oră1 != 12) {
oră1 = oră1 + 12;
}
dacă (ampm2 == "pm" && oră2 != 12) {
oră2 = oră2 + 12;
}
dacă (ora1 == 12 && ampm1 == "am") {
oră1 = 0;
}
dacă (hour2 == 12 && ampm2 == "am") {
oră2 = 0;
}
timp var1 = (oră1*60) + min1;
timp var2 = (oră2*60) + min2;
dacă (dif< 0) {
diff = diff + (60 * 24);
}
retur diff;
funcția CountingMinutesI(str) {
funcția CountingMinutesI(str) {
funcția parseMinutes(timeStr) {
timp var = timpStr.match(/d+/g);
var hour = parseInt(time[0]), minute = parseInt(time[1]);
var ampm = (timeStr.match(/[a|p]m/g)[0] === 'am') ? 0 : 1;
dacă (ora === 12) oră = 0;
Puneți funcția MeanMode (arr) să ia matricea de numere stocate în arr și să returneze 1 dacă
modul este egal cu media, 0 dacă nu sunt egale între ele (adică.[5, 3, 3, 3, 1] ar trebui să returneze 1
deoarece modul (3) este egal cu media (3)). Matricea nu va fi goală, va conține doar numere întregi
pozitive și nu va conține mai mult de un mod.
Exemple
Intrare: [1, 2, 3]
Ieșire: 0
Intrare: [4, 4, 4, 6, 2]
Ieșire: 1
funcția MeanMode(arr) {
len = arr.length
Pasul 1: determinați media - auto-explicativă
funcția mean(arr) {
numărul var = 0;
pentru (var i = 0; i < len; i++) {
număr += arr[i]
}
consolă.log (count / len)
Număr de retur / LEN
}
Pasul 2: determinați modul. Trebuie să numărăm câte din fiecare tip sunt în
matrice. O alternativă este să mențineți un contor în funcțiune, să sortați matricea
și apoi să numărați până când un element se schimbă, ținând evidența numărului maxim
și a valorii asociate. Următorul este un mod mult mai ușor, presupunând că cineva
are o familiaritate de bază cu obiectele javascript. Face din fiecare intrare nouă o
cheie și ține cont de câte din fiecare există, apoi face o serie de perechi cheie-
valoare create.
funcția MeanMode(arr) {
Modul Găsire
fie majoritateaApariții = 0;
mod let = 0;
pentru (fie i = 0; i < arr.length; i++) {
fie marco = arr[i];
pentru (fie j = i+1, count = 0; j < arr.length; j++) {
if (marco === arr[j]) {
chibrit!
număr++;
dacă (numărați > majoritateaApariții) {
mostOccurances = count;
mod = arr[j];
}
}
}
}
Găsiți media
fie medie = 0;
pentru (fie i = 0; i < arr.length; i++) {
media += arr[i];
}
medie = Math.round(medie/arr.lungime);
funcția MeanMode(arr) {
funcția mean(arr) {
return arr.reduce(function(a,b) {return a+b;}, 0) / arr.length;
}
Inserție bord
Funcția DashInsert(str) inserează liniuțe ('-') între fiecare două numere impare din str. De
exemplu: dacă str este 454793 ieșirea ar trebui să fie 4547-9-3. Nu numărați zero ca număr impar.
Exemple
funcția DashInsert(num) {
var strnum = num.toString();
var arr = strnum.split("");
returnează x;
funcția DashInsert(str) {
funcția DashInsert(str) {
funcția isOdd(n) {
returnează parseInt(n) % 2 === 1;
}
Setați funcția SwapCase (str) să ia parametrul str și să schimbe cazul fiecărui caracter. De exemplu:
dacă str este "Hello World" ieșirea ar trebui să fie hELLO wORLD. Lăsați numerele și simbolurile să
rămână așa cum sunt.
Exemple
Intrare: "Hello-LOL"
Ieșire: hELLO-lol
funcția SwapCase(str) {
funcția SwapCase(str) {
Setați funcția NumberSearch(str) să ia parametrul str, să caute toate numerele din șir, să le adune,
apoi să returneze acel număr final. De exemplu: dacă str este "88Hello 3World!" ieșirea ar trebui să fie
91. Va trebui să faceți diferența între numerele cu o singură cifră și numerele cu mai multe cifre, ca în
exemplul de mai sus. Deci, "55Hello" și "5Hello 5" ar trebui să returneze două răspunsuri diferite.
Fiecare șir va conține cel puțin o literă sau un simbol.
Exemple
Intrare: "75Number9"
Ieșire: 84
returnează ans
}
funcția NumberAddition(str) {
dacă (! DIGITS.includes(str[i])) {
dacă (număr !== '') {
numbers.push(număr);
}
număr = '';
} altceva {
număr + = str[i];
fie suma = 0;
pentru (fie i = 0; i < numbers.length; i++) {
suma += parseInt(numere[i]);
}
suma returnată;
}
funcția NumberAddition(str) {
numere var = str.match(/\d+/g) || [];
return numbers.reduce(function(sum, number) {return sum + Number(number)}, 0);
}
Exemple
Intrare: ["coder","byte","code"]
Ieșire: cod
Intrare: ["abc","defg","z","hijk"]
Ieșire: abc
funcția ThirdGreatest(strArr) {
strArr.sort(function(a, b) {return b.length - a.length});
returnează strArr[2];
}
funcția ThirdGreatest(strArr) {
returnează strArr[2];
funcția ThirdGreatest(strArr) {
Puneți funcția PowersofTwo (num) să ia parametrul num care va fi un întreg și să returneze șirul
adevărat dacă este o putere de doi. Dacă nu este returnați șirul false. De exemplu, dacă intrarea este 16,
atunci programul dvs. ar trebui să returneze șirul adevărat, dar dacă intrarea este 22, atunci ieșirea ar
trebui să fie șirul fals.
Exemple
Intrare: 4
Ieșire: adevărat
Intrare: 124
Ieșire: false
funcția PowersofTwo(num) {
altfel {
în timp ce (num >= 2){
testul VAR = num%2;
dacă (test == 0){
num = num/2
ans = "adevărat";}
altfel{
num = 0;
ans = "fals"}
}
}
Codul merge aici
returnează ans;
funcția PowersofTwo(num) {
funcția PowersofTwo(num) {
Persistența aditivă
Exemple
Intrare: 4
Ieșire: 0
Intrare: 19
Ieșire: 2
VEZI PROVOCAREA
funcția AdditivePersistence(num) {
funcția arrprep(numb) {
var numstr = numb.toString();
var arr = numstr.split('');
var numarr = arr.map(function(val) {
returnează parseInt(val)
})
Întoarcere numarr
}
funcția addup(arr) {
var redux = arr.reduce(function(a, b){
returnează a + b })
Întoarceți redux
}
numărul var = 0;
în timp ce (num > 9) {
num = addup(arrprep(num));
număr++;
}
Numărul de retururi
funcția AdditivePersistence(num) {
num = num.toString();
fie count = 0;
}
numărul de returnări;
}
funcția AdditivePersistence(num) {
Persistența multiplicativă
Exemple
Intrare: 4
Ieșire: 0
Intrare: 25
Ieșire: 2
funcția MultiplicativePersistence(num) {
funcția numprep(num) {
var strnum = num.toString();
var arr = strnum.split('');
var numarr = arr.map(function(val) {
returnează parseInt(val)});
Întoarcere numarr
}
funcția multnums(arr) {
var newnum = arr.reduce(funcție(a, b) {
returnează un * b})
Întoarcere Newnum
}
Codul merge aici
numărul var = 0;
funcția MultiplicativePersistence(num) {
num = num.toString();
fie count = 0;
în timp ce(1) {
dacă (num.length === 1) {
sparge;
}
număr++;
fie suma = 1;
pentru (fie i = 0; i < num.length; i++) {
sum *= parseInt(num[i]);
}
num = sum.toString();
}
numărul de returnări;
funcția MultiplicativePersistence(num) {
Exemple
Intrare: ["1","2","E","E","3"]
Ieșire: 1,2
Intrare: ["4","E","1","E","2","E","3","E"]
Ieșire: 4,1,2,3
funcția OffLineMinimum(strArr) {
var len = strArr.length;
numărul var = 0;
var holdArr = [];
var ans = [];
funcția OffLineMinimum(strArr) {
fie smallestIndex = 0;
fie smallestNumber = null;
strArr.forEach(function(value,index){
if (index > maxIndex) {
restitui;
}
dacă (valoare!== 'E' &&; valoare !== 'R') {
if (smallestNumber === null || parseInt(value) < smallestNumber) {
smallestIndex = indice;
smallestNumber = parseInt(valoare);
}
}
});
strArr[smallestIndex] = 'R';
returnează cel mai micNumăr;
}
return result.join(',');
funcția OffLineMinimum(strArr) {
Schimbarea secvenței
Exemple
indicele de returnare;
}
indicele de returnare;
}
}
funcția ChangingSequence(arr) {
dacă (arr.length < 2) returnează -1;
creșterea var = arr[0] < arr[1];
întoarcere -1;
}
Suprapunerea intervalelor
Intrare: [5,11,1,5,1]
Ieșire: adevărată
Intrare: [1,8,2,4,4]
Ieșire: false
funcția OverlappingRanges(arr) {
țintă var = arr.pop();
var MaxLowerBound = Math.max(arr[0], arr[2]);
var MinUpperBound = Math.min(arr[1], arr[3]);
funcția OverlappingRanges(arr) {
fie count = 0;
pentru (fie i = arr[0]; i <= arr[1]; i++) {
dacă (i >= arr[2] &&; i <= arr[3]) {
număr++;
}
}
întoarcere (număr >= arr[4]) ? adevărat : fals;
}
funcția OverlappingRanges(arr) {
gama var1 = [arr[0], arr[1]]; (a, b)
gama var2 = [arr[2], arr[3]]; (c, d)
var minimumSuprapunere = arr[4] - 1;
Supracreșterea
Puneți funcția Supergrowing (arr) să ia matricea de numere stocate în arr și să determine dacă
matricea formează o secvență supracrescătoare în care fiecare element din matrice este mai mare decât
suma tuturor elementelor anterioare. Matricea va consta numai din numere întregi pozitive. De exemplu:
dacă arr este [1, 3, 6, 13, 54], atunci programul dvs. ar trebui să returneze șirul "true", deoarece
formează o secvență supracrescătoare. Dacă nu se formează o secvență supracrescătoare, atunci
programul dvs. ar trebui să returneze șirul "false"
Exemple
Intrare: [1,2,3,4]
Ieșire: false
Intrare: [1,2,5,10]
Ieșire: adevărată
funcția Supergrowth(arr) {
var maxInd = arr.length - 1;
ținta VAR;
var sum;
}
Supercreștere(linie de citire());
funcția Supergrowth(arr) {
funcția Supergrowth(arr) {
dacă (arr.length < 2) returnează false;
dacă (arr.length === 2) întoarcere arr[0] < arr[1];
dacă (arr[0] >= arr[1]) returnează false;
Distanța Hamming
Funcția HammingDistance(strArr) preia matricea de șiruri stocate în strArr, care va conține doar
două șiruri de lungime egală și va returna distanța Hamming dintre ele. Distanța Hamming este numărul
de poziții în care caracterele corespunzătoare sunt diferite. De exemplu: dacă strArr este ["coder",
"codec"] atunci programul dvs. ar trebui să returneze 1. Șirul va avea întotdeauna o lungime egală și va
conține doar caractere minuscule din alfabet și numere.
Exemple
fie count = 0;
pentru (fie i = 0; i < strArr[0].length; i++) {
dacă (strArr[0][i] !== strArr[1][i]) {
conte++
}
}
numărul de returnări;
}
funcția HammingDistance(strArr) {
var word1 = strArr[0],
word2 = strArr[1],
len = word1.length,
număr = 0;
funcția HammingDistance(strArr) {
var hammingDistanță = 0;
pentru (var i = 0; i < strArr[0].length; i++) {
dacă (strArr[0][i] !== strArr[1][i]) {
hammingDistance++;
}
}
întoarcere hammingDistanță;
}
Suprafața dreptunghiului
Cea mai bine cotată soluție pentru utilizatori
funcția RectangleArea(strArr) {
var obj = {};
obj.x1 = parseInt(strArr[0].match(/((-*d+)/)[1], 10);
obj.y1 = parseInt(strArr[0].match(/(-*d+))/)[1], 10);
funcția RectangleArea(strArr) {
să punct = coorduri.shift();
fie x = punct[0];
fie y = punct[1];
fie deltaX = 0;
fie deltaY = 0;
coords.forEach(function(val){
dacă (x === val[0]) {
deltaY = Math.abs(val[1] - y);
}
dacă (y === val[1]) {
deltaX = Math.abs(val[0] - x);
}
});
funcția RectangleArea(strArr) {
var points = strArr.map(str => str.match(/\d+/g));
var minX = points.map(point => point[0]).sort()[0];
var minY = points.map(point => point[1]).sort()[0];
var maxX = points.map(point => point[0]).sort().reverse()[0];
var maxY = points.map(point => point[1]).sort().reverse()[0];
Puneți funcția BitwiseOne(strArr) să ia matricea de șiruri stocate în strArr, care va conține doar
două șiruri de lungime egală care reprezintă numere binare și să returneze un șir binar final care a
efectuat operația bitwise OR pe ambele șiruri. O operație OR la nivel de biți plasează un 0 în noul șir
unde există zerouri în ambele șiruri binare, altfel plasează un 1 în acel loc. De exemplu: dacă strArr
este ["1001", "0100"], atunci programul dvs. ar trebui să returneze șirul "1101"
Exemple
întoarcere newStr;
}
funcția BitwiseOne(strArr) {
ieșire var = '';
pentru (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] === '1' || strArr[1][i] === '1') {
Ieșire + = "1";
} altceva {
ieșire + = "0";
}
}
returnarea producției;
}
funcția BitwiseOne(strArr) {
Alte produse
Exemple
Intrare: [1,4,3]
Ieșire: 12-3-4
Intrare: [3,1,2,6]
Ieșire: 12-36-18-6
funcția OtherProducts(arr) {
fie holdArray = [];
returnează holdArray.join('-');
}
funcția OtherProducts(arr) {
Produs funcțional(ARR) {
returnare arr.reduce((a,b) => a * b);
}
funcția OtherProducts(arr) {
produse var = [];
pentru (var i = 0; i < arr.length; i++) {
var altele = arr.slice(0, i).concat(arr.slice(i + 1));
products.push(produs(altele));
}
return products.join('-');
}
Sortarea valurilor
Intrare: [0, 1, 2, 4, 1, 1, 1]
Ieșire: false
funcția WaveSorting(arr) {
newArr = [];
funcția WaveSorting(arr) {
Atâta timp cât putem pune un alt număr între același număr, funcționează
returnează mostFrecvent(arr) < (arr.length / 2);
}
Potrivire matrice
Dacă cele două matrice nu au aceeași cantitate de elemente, atunci pur și simplu adăugați elementele
rămase pe noua matrice (exemplu prezentat mai jos). Ambele matrice vor fi în formatul: [e1, e2, e3, ...]
unde va exista cel puțin un element în fiecare matrice.
Exemple
funcția ArrayMatching(strArr) {
strArr = strArr.map(val => val.replace(/[[]]/g, '')
.split(/s*,s*/).map(val1 => parseInt(val1, 10)));
funcția ArrayMatching(strArr) {
return results.join('-');
}
funcția ArrayMatching(strArr) {
arr1 = strArr[0].match(/\d+/g).map(Număr);
arr2 = strArr[1].match(/\d+/g).map(Număr);
Inversare binară
Exemple
Intrare: "213"
Ieșire: 171
Intrare: "4567"
Ieșire: 60296
funcția BinaryReversal(str) {
funcția BinaryReversal(str) {
funcția toBinary(str) {
rezultat = Number(str).toString(2);
pad stânga cu 0 înainte pentru a face un multiplu de 8 cifre ...
dacă (result.length % 8 !== 0)
returnează matrice nouă(8 - (result.length % 8)).fill(0).join('') + rezultat;
altfel rezultatul returnării;
}
funcția toDecimal(str) {
returnează parseInt(str, 2);
}
funcția BinaryReversal(str) {
întoarcere laBinary(str);
var reverse = toBinary(str).split('').reverse().join('');
întoarcere laZecimal(invers);
}
Exemple
Intrare: [9, 9, 4, 2]
Ieșire: 1
Intrare: [10, 22, 9, 33, 21, 50, 41, 60, 22, 68, 90]
Ieșire: 7
funcția LongestGrowthSequence(arr) {
fie len = arr.length;
fie arrHolder = [];
funcția ascend(inputArr) {
let arrlen = inputArr.length;
return inputArr.every((val, ind) => {
dacă (ind < arrlen - 1) {
return val < inputArr[ind + 1];
}
întoarcere adevărată;
});
}
returnează lis.length;
funcția crescătoare(arr) {
return arr.every(function(value, index, arr) {
var prev = (indice === 0) ? 0: arr[index - 1];
returnarea valorii < anterioare;
});
}
funcția LongestGrowthSequence(arr) {
var cel mai lung = 0;
Perechi pare
Puneți funcția EvenPairs(str) să ia parametrul str transmis și să determine dacă există o pereche de
numere pare adiacente oriunde în șir. Dacă există o pereche, returnați șirul true, altfel returnați false. De
exemplu: dacă str este "f178svg3k19k46", atunci există două numere pare la sfârșitul șirului, "46",
astfel încât programul dvs. ar trebui să returneze șirul adevărat. Un alt exemplu: dacă str este
"7r5gg812", atunci perechea este "812" (8 și 12), astfel încât programul dvs. ar trebui să returneze șirul
adevărat.
Exemple
Intrare: "3gy41d216"
Ieșire: adevărat
Intrare: "f09r27i8e67"
Ieșire: false
funcția EvenPairs(str) {
returnare regEx.test(str);
}
Păstrați această funcție sunați aici
EvenPairs(readline());
funcția EvenPairs(str) {
}
}
funcția EvenPairs(str) {
numere var = str.match(/\d+/g);
pentru (numărul var de numere) {
dacă (hasEvenPairs(number)) returnează true;
}
returnează fals;
}
Următor → Palindromul
Exemple
Intrare: 2
Ieșire: 3
Intrare: 180
Ieșire: 181
funcția NextPalindrome(num) {
în timp ce (adevărat) {
numString = count.toString();
revString = numString.split('')
.invers()
.join('');
if (revString === numString) returnează parseInt(numString, 10);
număr++;
}
}
funcția NextPalindrome(num) {
fie următorPalindromul = nul;
pentru (fie i = num + 1; ; i++) {
fie șir = i.toString();
dacă (isPalindrome(string)) {
următorPalindrom = i;
sparge;
}
}
întoarceți următorulPalindrome;
funcția isPalindrome(str) {
pentru (fie i = 0, max = Math.floor(str.length/2); i < max; i++) {
dacă (str[i] !== str[str.length-1-i]) {
returnează fals;
}
}
întoarcere adevărată;
}
}
funcția isPalindrome(num) {
var numStr = num.toString();
return numStr.split('').reverse().join('') === numStr;
}
funcția NextPalindrome(num) {
var nextNum = num + 1;
în timp ce (!isPalindrome(nextNum)) {
nextNum++;
}
întoarceți următorulNum;
}
Funcția LargestPair(num) ia parametrul num transmis și determină cel mai mare număr de două
cifre din întregul număr. De exemplu: dacă num este 4759472 atunci programul ar trebui să returneze 94,
deoarece acesta este cel mai mare număr din două cifre. Intrarea va conține întotdeauna cel puțin două
cifre pozitive.
Exemple
Intrare: 453857
Ieșire: 85
Intrare: 363223311
Ieșire: 63
funcția LargestPair(num) {
funcția LargestPair(num) {
num = num.toString();
fie largestNum = 0;
pentru (fie i = 1; i < num.length; i++) {
let testNum = parseInt(num[i-1] + num[i]);
if (testNum > largestNum) {
largestNum = testNum;
}
}
returnați cel mai mareNum;
}
Păstrați această funcție sunați aici
LargestPair(readline());
funcția LargestPair(num) {
var max = 0;
var numStr = num.toString();
Exemple
Intrare: "abcdef"
Ieșire: a
funcția NonrepeatingCharacter(str) {
funcția NonrepeatingCharacter(str) {
str = str.replace(/\s+/g, '');
numărul var = {};
Setați funcția TwoSum(arr) să preia matricea de numere întregi stocate în arr și să determine dacă
oricare două numere (excluzând primul element) din matrice pot însuma până la primul element din
matrice. De exemplu: dacă arr este [7, 3, 5, 2, -4, 8, 11], atunci există de fapt două perechi care
însumează numărul 7: [5, 2] și [-4, 11]. Programul dvs. ar trebui să returneze toate perechile, cu
numerele separate printr-o virgulă, în ordinea în care apare primul număr în matrice. Perechile trebuie
separate printr-un spațiu. Deci, pentru exemplul de mai sus, programul dvs. ar returna: 5,2 -4,11
Dacă nu există două numere care însumează primul element din matrice, returnați -1
Exemple
funcția TwoSum(arr) {
arr.forEach(item => {
const compliment = răspuns - articol;
dacă (history.has(compliment)) {
matches.push([articol, compliment]);
} altceva {
history.add(articol);
}
});
funcția TwoSum(arr) {
perechi var = [];
var sum = arr[0];
var rest = arr.felie(1);
perechi = findPairs(rest, sumă);
Doi biți
Puneți funcția BitwiseTwo (strArr) să ia matricea de șiruri stocate în strArr, care va conține doar
două șiruri de lungime egală care reprezintă numere binare și să returneze un șir binar final care a
efectuat operația AND la nivel de biți pe ambele șiruri. O operație AND la nivel de biți plasează un 1 în
noul șir unde există un 1 în ambele locații din șirurile binare, altfel plasează un 0 în acel loc. De
exemplu: dacă strArr este ["10111", "01101"], atunci programul dvs. ar trebui să returneze șirul
"00101"
Exemple
funcția BitwiseTwo(strArr) {
funcția BitwiseTwo(strArr) {
rezultat var = '';
pentru (var i = 0; i < strArr[0].length; i++) {
dacă (strArr[0][i] === '1' &&; strArr[1][i] === '1') {
rezultat + = "1";
} altceva {
rezultat += "0";
}
}
rezultatul returnării;
}
Puneți funcția PowerSetCount(arr) să preia matricea de numere întregi stocate în arr și să returneze
lungimea setului de puteri (numărul tuturor seturilor posibile) care pot fi generate. De exemplu: dacă
arr este [1, 2, 3], atunci următoarele seturi formează setul de puteri:
Puteți vedea mai sus toate seturile posibile, împreună cu setul gol, sunt generate. Prin urmare, pentru
această intrare, programul dvs. ar trebui să returneze 8.
Exemple
Intrare: [1, 2, 3, 4]
Ieșire: 16
Intrare: [5, 6]
Ieșire: 4
funcția PowerSetCount(arr) {
fie len = arr.length;
returnează Math.pow(2, len);
}
funcția PowerSetCount(arr) {
returnează Math.pow(2, arr.length);
}
Cifre produs
Exemple
Intrare: 6
Ieșire: 2
Intrare: 23
Ieșire: 3
funcția ProductDigits(num) {
fie pivot = Math.sqrt(num);
fie value = num.toString().length + 1;
pentru (fie i = 1; i <= pivot; i++) {
dacă (num % i === 0) {
fie maxFactor = i;
maxCompFactor = num / maxFactor;
maxFactorString = maxFactor.toString();
maxCompFactorString = maxCompFactor.toString();
fie totalLength = maxFactorString.length +
maxCompFactorString.length;
if (totalLength < value) {
valoare = totalLungime;
}
}
}
valoarea returnată;
}
funcția ProductDigits(num) {
funcția primeFactors(num) {
dacă (num === 1) returnează 1;
fie pf = [];
funcția getDivisors(num) {
divizori var = [1];
pentru (var i = 2; i <= num / 2; i++) {
dacă (num % i === 0) {
divizori.push(i);
}
}
divizori.push(num);
divizori de întoarcere;
}
funcția ProductDigits(num) {
divizori var = divizori getdivizori(num);
perechi var = [];
Creatorul palindromului
Intrarea va conține numai caractere alfabetice minuscule. Programul dvs. ar trebui să încerce întotdeauna
să creeze cel mai lung subșir palindromic eliminând 1 sau 2 caractere (a se vedea al doilea exemplu de
caz de test ca exemplu). Cele 2 caractere pe care le eliminați nu trebuie să fie adiacente în șir.
Exemple
Intrare: "mmop"
Ieșire: nu este posibil
Intrare: "kjjjhjjj"
Ieșire: k
funcția PalindromeCreator(str) {
fie len = str.length;
testați pentru a vedea dacă este deja un Palindrom
dacă (isPalindrome(str)) {
returnați "palindromul";
}
pentru (fie i = 0; i < len; i++) {
let testArray = str.split('');
fie res = testArray.splice(i, 1);
fie newString = testArray.join('');
dacă (isPalindrome(newString)) {
consolă.log("una");
returnare res.join('');
}
}
pentru (fie i = 0; i < len; i++) {
fie res = [];
pentru (fie j = i; j < len - 1; j++) {
let testArray = str.split('');
res[0] = testArray.splice(i, 1);
res[1] = testArray.splice(j, 1);
fie newString = testArray.join('');
if(isPalindrome(newString)) {
returnare res.join('');
}
}
}
returnarea "nu este posibilă";
}
----------------Ajutoare---------------------------
funcția isPalindrome(str) {
fie newStr = str.split('').reverse().join('');
if (newStr === str) {
întoarcere adevărată;
}
returnează fals;
}
funcția PalindromeCreator(str) {
dacă (isPalindrome(str)) {
returnați "palindromul";
}
Creați combinații
fie combo-uri = [];
pentru (fie i = 0, max = Math.pow(2, str.length); i < max; i++) {
fie combo = i.toString(2);
Sortați astfel încât primele două litere găsite să fie returnate mai întâi pentru
când
Există mai multe valori
palindromeCombos.sort(function(a,b){
returnează parseInt(a,2) < parseInt(b,2);
});
Găsiți și returnați cea mai scurtă îndepărtare < = > mai lungă palindrom
fie shortestCount = null;
fie shortestCombo = '';
palindromeCombos.forEach(function(combo){
fie count = 0;
pentru (fie i = 0; i < combo.length; i++) {
dacă (combo[i] === '1') {
număr++;
}
}
if (shortestCount === null || count < shortestCount) {
shortestCount = număr;
shortestCombo = combo;
}
});
să rezulte = '';
pentru (fie i = 0; i < str.length; i++) {
dacă (cel mai scurtCombo[i] === '1') {
rezultat += str[i];
}
}
rezultatul returnării;
funcția isPalindrome(str) {
întoarcere (str === str.split('').reverse().join('')) ? adevărat : fals;
}
funcția isPalindrome(str) {
retur str === str.split('').reverse().join('');
}
funcția PalindromeCreator(str) {
dacă (isPalindrome(str)) returnați "palindrom";
Aveti functia BasicRomanNumerals(str) read str care va fi un sir de cifre romane. Cifrele
utilizate sunt: I pentru 1, V pentru 5, X pentru 10, L pentru 50, C pentru 100, D pentru 500 și M pentru
1000. În cifrele romane, pentru a crea un număr ca 11, pur și simplu adăugați un 1 după 10, astfel încât
să obțineți XI. Dar pentru a crea un număr ca 19, utilizați notația de scădere care este de a adăuga un I
înainte de un X sau V (sau adăugați un X înainte de un L sau C). Deci 19 în cifre romane este XIX.
Scopul programului dvs. este de a returna echivalentul zecimal al cifrei romane date. De exemplu: dacă
str este "XXIV" programul dvs. ar trebui să returneze 24
Exemple
Intrare: "IV"
Ieșire: 4
Intrare: "XLVI"
Ieșire: 46
funcția BasicRomanNumerals(str) {
fie letterObj = {
I: 1,
V: 5;
X: 10,
L: 50;
C: 100,
D: 500,
M: 1000
}
fie res = 0;
fie len = str.length;
pentru (fie i = 0; i < len; i++) {
dacă (!letterObj[str[i + 1]] || letterObj[str[i]] >= letterObj[str[i +
1]]) {
res += letterObj[str[i]];
} altceva {
res += (letterObj[str[i + 1]] - letterObj[str[i]]);
I++;
}
}
retur res;
}
funcția BasicRomanNumerals(str) {
/*
Simbol Eu V X L C D M
Valoare 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;
fie suma = 0;
comutator(simbol) {
cazul "I":
if (nextSymbol === 'V') {
suma += ROMAN_V - ROMAN_I;
I++;
} else if (nextSymbol === 'X') {
suma += ROMAN_X - ROMAN_I;
I++;
} altceva {
suma += ROMAN_I;
}
sparge;
cazul "V":
suma += ROMAN_V;
sparge;
cazul "X":
if (nextSymbol === 'L') {
suma += ROMAN_L - ROMAN_X;
I++;
} else if (nextSymbol === 'C') {
suma += ROMAN_C - ROMAN_X;
I++;
} altceva {
suma += ROMAN_X;
}
sparge;
cazul "L":
suma += ROMAN_L;
sparge;
cazul "C":
if (nextSymbol === 'D') {
suma += ROMAN_D - ROMAN_C;
I++;
} else if (nextSymbol === 'M') {
suma += ROMAN_M - ROMAN_C;
I++;
} altceva {
suma += ROMAN_C;
}
sparge;
cazul "D":
suma += ROMAN_D;
sparge;
cazul "M":
suma += ROMAN_M;
sparge;
Implicit:
Cărbune sau spațiu ilegal
sparge;
}
}
suma returnată;
}
funcția BasicRomanNumerals(str) {
zecimale var = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
var romani = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV',
'I'];
ieșire var = 0;
Funcția FoodDistribution (arr) citește matricea de numere stocate în arr care va reprezenta
nivelul de foame al diferitelor persoane variind de la 0 la 5 (0 însemnând că nu este foame deloc, 5
înseamnă foarte foame). Veți avea, de asemenea, N sandvișuri de oferit, care vor varia de la 1 la 20.
Formatul matricei va fi [N, h1, h2, h3, ...] unde N reprezintă numărul de sandvișuri pe care le aveți, iar
restul matricei va reprezenta nivelurile de foame ale diferitelor persoane. Scopul tău este să minimizezi
diferența de foame dintre fiecare pereche de persoane din matrice folosind sandvișurile pe care le ai la
dispoziție.
De exemplu: dacă arr este [5, 3, 1, 2, 1], înseamnă că aveți 5 sandvișuri de dat. Le puteți distribui în
următoarea ordine oamenilor: 2, 0, 1, 0. Oferind aceste sandvișuri oamenilor, nivelul lor de foame devine
acum: [1, 1, 1, 1]. Diferența dintre fiecare pereche de persoane este acum 0, totalul este, de asemenea, 0,
deci programul dvs. ar trebui să returneze 0. Notă: Este posibil să nu trebuiască să dați toate sau chiar
niciunul dintre sandvișurile dvs. pentru a produce o diferență minimă.
Un alt exemplu: dacă arr este [4, 5, 2, 3, 1, 0] atunci puteți distribui sandvișurile în următoarea ordine:
[3, 0, 1, 0, 0] ceea ce face ca toate nivelurile de foame să fie următoarele: [2, 2, 2, 1, 0]. Diferențele
dintre fiecare pereche de persoane sunt acum: 0, 0, 1, 1 și astfel programul dvs. ar trebui să returneze
diferența finală minimizată de 2.
Exemple
Intrare: [5, 2, 3, 4, 5]
Ieșire: 1
Intrare: [3, 2, 1, 0, 4, 1, 0]
Ieșire: 4
funcția FoodDistribution(arr) {
să trateze = arr.shift();
fie myArray = arr.slice(0);
fie arrMin = arr.sort((val1, val2) => val2 - val1).pop()
fie len = myArray.length;
fie count = 0;
pentru (fie i = 0, len = valQuantArr.length; i < len - 1; i++) {
count += Math.abs(valQuantArr[i].value - valQuantArr[i + 1].value);
}
numărul de returnări;
}
-----------------Ajutoare-----------------------
flattenMid = (arr, tratează, q) => {
fie index = 0;
în timp ce (tratează > 0 &&; index > -1) {
index = arr.findIndex((val, ind) => {
returnare val.quant <= q && ind >= 1 && ind < arr.length - 1 &&;
val.value > arr[ind - 1].value &&; val.value > arr[ind + 1].value;
});
dacă (indice >= 0) {
arr[index].value --;
tratează -= q;
}
}
returnează [obiectivează(arr), tratează];
}
funcția FoodDistribution(arr) {
funcția getHungerDifference(arr){
fie diff = 0;
pentru (fie i = 1; i < arr.length; i++) {
diff += Math.abs(arr[i] - arr[i-1]);
}
retur diff;
}
funcția FoodDistribution(arr) {
var N = arr[0];
var foameNiveluri = arr.felie(1);
în timp ce (N > 0) {
var maxDiferență = 0;
Indicele care urmează să fie hrănit cu un sandwich
var mostNeeded = -1;
pentru (var i = 0; i < hungerLevels.length - 1; i++) {
diferența var = Math.abs(hungerLevels[i + 1] - hungerLevels[i]);
if (diferența > maxDifference) {
maxDiferență = diferență;
mostNeeded = (hungerLevels[i + 1] > hungerLevels[i]) ? (i + 1): i;
}
}
Acum știm cine are nevoie atât de mult de sandviș. dă-l mai departe
dacă (mostNeeded === -1) {
Diferențele adiacente sunt toate 0, așa că nu mai dați sandvișurile
returnare 0;
} altceva {
hungerLevels[mostNeeded] -= 1;
N--;
}
}
returnează sumOfDifferences;
}
Trei sume
Setați funcția ThreeSum(arr) să preia matricea de numere întregi stocate în arr și să determine dacă
oricare trei numere distincte (excluzând primul element) din matrice pot însuma până la primul element
din matrice. De exemplu: dacă arr este [8, 2, 1, 4, 10, 5, -1, -1] atunci există de fapt trei seturi de
triplete care însumează numărul 8: [2, 1, 5], [4, 5, -1] și [10, -1, -1]. Programul dvs. ar trebui să
returneze șirul true dacă 3 elemente distincte însumează primul element, altfel programul dvs. ar trebui
să returneze șirul false. Matricea de intrare va conține întotdeauna cel puțin 4 elemente.
Exemple
funcția ThreeSum(arr) {
Cifre pad
în timp ce (combo.length < arr.length) {
combo = '0' + combo;
}
combos.push(combo);
}
Combo-uri de testare
fie goodCombos = [];
combos.forEach(function(combo){
fie suma = 0;
pentru (fie i = 0; i < combo.length; i++) {
dacă (combo[i] === '1') {
suma += parseInt(arr[i]);
}
}
dacă (sumă === răspuns) {
goodCombos.push(combo);
}
});
funcția ThreeSum(arr) {
var sum = arr[0];
numere var = arr.slice(1);
Calea corectă
Puneți funcția CorrectPath (str) să citească parametrul str trecut, care va reprezenta mișcările
efectuate într-o grilă de celule 5x5 începând din poziția din stânga sus. Caracterele din șirul de intrare
vor fi compuse în întregime din: r, l, u, d, ?. Fiecare dintre caractere reprezintă direcția de urmat în
cadrul grilei, de exemplu: r = dreapta, l = stânga, u = sus, d = jos. Scopul dvs. este să determinați ce
caractere ar trebui să fie semnele de întrebare pentru ca o cale care urmează să fie creată să meargă din
partea stângă sus a grilei până în dreapta jos, fără a atinge celulele parcurse anterior pe celulele din grilă.
De exemplu: dacă str este "r?d?drdd", atunci programul dvs. ar trebui să scoată șirul final corect care
va permite formarea unei căi din stânga sus a unei grile 5x5 în dreapta jos. Pentru această intrare,
programul ar trebui, prin urmare, să returneze șirul rrdrdrdd. Va exista o singură cale corectă și va
exista întotdeauna cel puțin un semn de întrebare în șirul de intrare.
Exemple
vom încerca fiecare posibilitate până când vom găsi una care funcționează,
Aceasta va fi 4^num permutări
fie total = Math.pow(4, num);
funcția CorrectPath(str) {
Încercați trasee
combos.forEach(function(combo){
fie comboArray = combo.split('');
fie tryPath = '';
pentru (fie i = 0; i < str.length; i++) {
if (str[i] === '?') {
fie direcție = comboArray.shift();
comutator (direcție) {
cazul "0": // drept
tryPath + = 'r';
sparge;
cazul "1": // jos
tryPath += 'd';
sparge;
cazul "2": // stânga
tryPath + = 'l';
sparge;
cazul "3": // sus
tryPath + = "u";
sparge;
Implicit:
Nu ar trebui să se întâmple niciodată
sparge;
}
} altceva {
tryPath += str[i];
}
}
dacă (pathGood(tryPath)) {
goodPaths.push(tryPath);
}
});
goodPaths conform specificațiilor ar trebui să fie doar === 1, dar acest cod
poate gestiona mai multe cazuri adevărate
returnați goodPaths[0];
fie grilă = [
[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]
]; Obiectivul 4,4
}
}
funcția findingChars(str) {
În primul rând, generați toate cazurile posibile: înlocuirea ? cu indicații
permutări var = [''];
pentru (var i = 0; i < str.length; i++) {
if (str[i] === '?') {
var newPermutations = [];
permutations.forEach(function(permutation) {
newPermutations.push(permutare + 'u');
newPermutations.push(permutare + 'd');
newPermutations.push(permutare + 'l');
newPermutations.push(permutare + 'r');
});
permutări = nouPermutări;
} altceva {
permutări = permutations.map(permutation => permutation + str[i]);
}
}
funcția CorrectPath(str) {
var validPaths = findMissingChars(str);
Echilibrarea cântarului
Puneți funcția ScaleBalancing(strArr) să citească strArr care va conține două elemente, primul
fiind cele două ponderi întregi pozitive pe o scală de echilibru (partea stângă și partea dreaptă ) și al
doilea element fiind o listă a ponderilor disponibile ca numere întregi pozitive. Scopul tău este să
determini dacă poți echilibra cântarul folosind cea mai mică cantitate de greutăți din listă, dar folosind
cel mult doar 2 greutăți. De exemplu: dacă strArr este ["[5, 9]", "[1, 2, 6, 7]"] atunci aceasta înseamnă
că există o scală de echilibru cu o greutate de 5 pe partea stângă și 9 pe partea dreaptă. De fapt, este
posibil să echilibrați această scală adăugând un 6 în partea stângă din lista de greutăți și adăugând un 2
în partea dreaptă. Ambele scale vor fi acum egale cu 11 și sunt perfect echilibrate. Programul dvs. ar
trebui să returneze un șir separat prin virgulă al greutăților care au fost utilizate din listă în ordine
crescătoare, deci pentru acest exemplu programul dvs. ar trebui să returneze șirul 2,6
Va exista o singură soluție unică și lista greutăților disponibile nu va fi goală. De asemenea, este posibil
să adăugați două greutăți la o singură parte a cântarului pentru ao echilibra. Dacă nu este posibil să
echilibrați scara, atunci programul dvs. ar trebui să returneze șirul nu este posibil.
Exemple
funcția ScaleBalancing(strArr) {
/*
Generați toate combinațiile posibile de greutăți ȘI permutări de stânga /
dreapta - 3^n timp
0 - Greutate neutilizată
1 - Greutate pe partea stângă
2 - Greutate pe partea dreaptă
*/
fie combo-uri = [];
pentru (fie i = 0, max = Math.pow(3, weights.length); i < max; i++) {
fie combo = i.toString(3);
fie numWeights = combo.split('').reduce((a,v) => a + (parseInt(v) > 0 | 0),
0);
Pad
în timp ce (combo.length < weights.length) {
combo = '0' + combo;
}
combos.push(combo);
}
consolă.log(combo-uri);
Combo-uri de testare
fie goodCombos = [];
combos.forEach(function(combo){
fie left = obiecte[0];
fie dreapta = obiecte[1];
pentru (fie i = 0; i < combo.length; i++) {
if (combo[i] === '1') { // Stânga
stânga += greutăți[i];
}
if (combo[i] === '2') { // Dreapta
dreapta += greutăți[i];
}
}
Sortați mai întâi după numărul de greutăți fizice utilizate, apoi după greutatea
totală dacă există mai multe seturi
goodCombos.sort(function(a, b){
fie aCount = a.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
fie bCount = b.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
funcția ScaleBalancing(strArr) {
ponderi var = strArr[1].match(/\d+/g).map(Număr);
var weightsOnScale = strArr[0].match(/\d+/g).map(Număr);
var leftWeight = weightsOnScale[0];
var rightWeight = weightsOnScale[1];
Nicio soluție
returnarea "nu este posibilă";
}
Puneți funcția ThreeNumbers (str) să ia parametrul str transmis și să determine dacă apar exact
trei numere întregi unice, cu o singură cifră, în fiecare cuvânt din șir. Numerele întregi pot apărea
oriunde în cuvânt, dar nu pot fi toate adiacente unul altuia. Dacă fiecare cuvânt conține exact 3 numere
întregi unice undeva în interiorul acestuia, atunci returnați șirul adevărat, altfel returnați șirul fals. De
exemplu: dacă str este "2hell6o3 wor6l7d2", atunci programul dvs. ar trebui să returneze "true", dar
dacă șirul este "hell268o w6or2l4d", atunci programul dvs. ar trebui să returneze "false", deoarece toate
numerele întregi sunt adiacente unul altuia în primul cuvânt.
Exemple
words.forEach(function(word){
fie numere = 0;
fie treiAdiacent = fals;
let usedDigits = '';
pentru (fie i = 0; i < word.length; i++) {
Verificați dacă există cifre utilizate
dacă (usedDigits.includes(word[i])) {
folosit! eșua
rezultat = fals;
}
dacă (DIGITS.includes(word[i])) {
numere++;
usedDigits += cuvânt[i];
dacă (numere === 3) {
dacă (DIGITS.includes(word[i-1]) &&; DIGITS.includes(word[i-2]))
{
treiAdiacent = adevărat;
}
}
}
Verificați dacă există 3 cifre precedente adiacente
}
} altceva {
rezultat = fals;
}
});
rezultatul returnării;
}
funcția ThreeNumbers(str) {
var cuvinte = str.split(' ');
var numbersOfWords = words.map(word => word.match(/\d+/g));
întoarcere adevărată;
}
funcția ThreeNumbers(str) {
Căutarea alfabetului
Exemple
Intrare: "abcdefghijklmnopqrstuvwxyyyy"
Ieșire: false
Intrare: "abc123456kmo"
Ieșire: false
funcția AlphabetSearching(str) {
str = str.toLitere mici();
pentru (fie i = 97; i < 97 + 26; i++) {
fie char = String.fromCharCode(i);
dacă (!str.includes(char)) {
returnează fals;
}
}
întoarcere adevărată;
}
funcția AlphabetSearching(str) {
funcția isAlpha(char) {
returnează /[A-Za-z]/.test(char);
}
funcția AlphabetSearching(str) {
var foundLetters = [];
pentru (var i = 0; i < str.length; i++) {
dacă ( isAlpha(str[i]) && (foundLetters.indexOf(str[i]) === -1) ) {
foundLetters.push(str[i]);
}
}
returnare foundLetters.length === 26;
}
Puneți funcția TimeDifference (strArr) să citească matricea de șiruri stocate în strArr, care va fi
o listă nesortată de ori într-un format de douăsprezece ore, astfel: HH: MM (am / pm). Scopul tău este să
determini cea mai mică diferență în minute între două dintre timpurile din listă. De exemplu: dacă
strArr este ["2:10pm", "1:30pm", "10:30am", "4:42pm"], atunci programul dvs. ar trebui să returneze
40, deoarece cea mai mică diferență este între 1:30pm și 2:10pm cu o diferență de 40 de minute.
Matricea de intrare va conține întotdeauna cel puțin două elemente și toate elementele vor fi în formatul
corect și unic.
Exemple
funcția TimeDifference(strArr) {
Vremurile ne vor ține diferențele de timp
fie ori = [];
fie newStrArr = strArr.map (val => {
fie meciuri = val.match(/^(\d+):(\d+)([ap]m)$/);
let hours = parseInt(meciuri[1], 10);
fie minute = parseInt(meciuri[2], 10);
fie jumătate = chibrituri[3];
dacă (jumătate === 'am' && ore === 12) {
ore = 0;
}
Dacă (jumătate === 'PM' && ore !== 12) {
ore += 12;
}
retur (ore * 60 + minute);
})
.sort((a, b) => { return a - b});
Complicat - al doilea exemplu arată că trebuie să luăm în considerare cea mai
timpurie oră atât în ziua 0, cât și în ziua 1
newStrArr.push(newStrArr[0] + 24 * 60);
funcția TimeDifference(strArr) {
let array = strArr.map(value => {
fie potriviri = value.match(/^(\d+):(\d+)([ap]m)$/);
fie h = parseInt(meciuri[1], 10);
fie m = parseInt(meciuri[2], 10);
if (potriviri[3] === 'am' &&; h === 12) {
h = 0;
} else if (meciuri[3] === 'pm' && h !== 12) {
h + = 12;
}
întoarcere (60 * h + m);
}).sort(funcție(a, b) {
returnează A - B;
});
array.push(matrice[0] + 24 * 60);
fie ori = [];
pentru (fie i = 0; i < array.length - 1; i++) {
times.push(matrice[i+1] - matrice[i]);
}
returnează Math.min(... ori);
}
Păstrați această funcție sunați aici
TimeDifference(readline());
Rând triunghi
Funcția TriangleRow(num) take num, care va fi un întreg pozitiv reprezentând un rând din
triunghiul lui Pascal. Triunghiul lui Pascal începe cu un [1] la rândul 0 al triunghiului. Atunci primul
rând este [1, 1], iar al doilea rând este [1, 2, 1]. Următorul rând începe cu 1 și se termină cu 1, iar
interiorul rândului este determinat prin adăugarea elementelor k-1 și kth din rândul anterior. Următorul
rând din triunghi ar fi atunci [1, 3, 3, 1] și așa mai departe. Intrarea va fi un număr întreg pozitiv și
obiectivul dvs. este să returnați suma acelui rând. De exemplu: dacă num este 4, atunci programul dvs. ar
trebui să returneze suma de 1 + 4 + 6 + 4 + 1, care este 16.
Exemple
Intrare: 1
Ieșire: 2
Intrare: 2
Ieșire: 4
funcția TriangleRow(num) {
returnează Math.pow(2, num);
}
consolă.log(TriangleRow(5));
funcția TriangleRow(num) {
}
Păstrați această funcție sunați aici
TriangleRow(readline());
funcția TriangleRow(num) {
Răspunsul simplu - întotdeauna se rezumă la n^2
returnați num * num;
Piața Vocalelor
a b c d
e i k r
o u f j
În cadrul acestei matrice există un pătrat 2x2 de vocale care încep în al doilea rând și prima coloană, și
anume, ei, ou. Dacă se găsește un pătrat de vocale 2x2, programul dvs. ar trebui să returneze poziția din
stânga sus (rând-coloană) a pătratului, deci pentru acest exemplu programul dvs. ar trebui să returneze 1-
0. Dacă nu există un pătrat de vocale 2x2, atunci returnați șirul care nu a fost găsit. Dacă există mai
multe pătrate de vocale, returnați-l pe cel care se află în poziția cea mai din stânga sus din întreaga
matrice. Matricea de intrare va avea cel puțin dimensiunea 2x2.
Exemple
funcția VowelSquare(strArr) {
funcția isVowel(letter) {
vocale const = 'aeiou';
returnarea vocalelor.includes(scrisoare);
}
}
funcția VowelSquare(strArr) {
var matrix = strArr.map(row => row.split(''));
Puneți funcția ClosestEnemy (arr) să ia matricea de numere stocate în arr și din poziția
din matrice unde este un 1, returnați numărul de spații fie la stânga, fie la dreapta trebuie să vă deplasați
pentru a ajunge la un inamic care este reprezentat de un 2. De exemplu: dacă arr este [0, 0, 1, 0, 0, 0, 2,
0, 2], atunci programul tău ar trebui să returneze 3, deoarece cel mai apropiat inamic (2) este la 3 spații
distanță de 1. Matricea va conține orice număr de 0 și 2, dar numai un singur 1. Este posibil să nu
conțină deloc 2, unde în acest caz programul dvs. ar trebui să returneze un 0.
Exemple
Intrare: [1, 0, 0, 0, 2, 2, 2]
Ieșire: 4
Intrare: [2, 0, 0, 0, 2, 2, 1, 0]
Ieșire: 1
funcția ClosestEnemy(arr) {
dacă (!arr.includes(2)) {
returnare 0;
}
loc1 = arr.findIndex(val => {
întoarcere val === 1;
});
funcția ClosestEnemy(arr) {
Căutare dreapta
fie deltaRight = nedefinit;
pentru (fie i = hero+1; i < arr.length; i++) {
if (arr[i] === 2) { // Inamic găsit
deltaRight = i - erou;
sparge;
}
}
Căutare stânga
fie deltaLeft = nedefinit;
pentru (fie i = erou-1; i >= 0; i--) {
if (arr[i] === 2) { // Inamic găsit
deltaLeft = erou - i;
sparge;
}
}
if (deltaLeft=== undefined &&; deltaRight === nedefinit) {
returnare 0;
}
funcția ClosestEnemy(arr) {
Indice de 1
var me = arr.indexOf(1);
var minimumDistance = arr.length;
Puneți funcția ClosestEnemyII (strArr) să citească matricea numerelor stocate în strArr care va
fi o matrice 2D care conține numai numerele întregi 1, 0 sau 2. Apoi, din poziția din matrice unde este
un 1, întoarceți numărul de spații fie la stânga, la dreapta, în jos sau în sus, trebuie să vă deplasați pentru
a ajunge la un inamic care este reprezentat de un 2. Sunteți capabili să înfășurați și o parte a matricei în
cealaltă. De exemplu: dacă strArr este ["0000", "1000", "0002", "0002"] atunci aceasta arată astfel:
000001000000200
0
2 Pentru această intrare, programul dvs. ar trebui să returneze 2,
deoarece cel mai apropiat inamic (2) este la 2
spații distanță de 1, deplasându-vă la stânga pentru a înfășura cealaltă parte și apoi deplasându-vă jos o
dată. Matricea va conține orice număr de 0 și 2, dar numai un singur 1. Este posibil să nu conțină deloc
2, unde în acest caz programul dvs. ar trebui să returneze un 0.
Exemple
funcția ClosestEnemyII(strArr) {
Pasul unu - returnați 0 dacă nu există 2 în matrice
fie twosies = strArr.filter(val => {
returnare val.include("2");
});
dacă (!twosies.length) {
returnare 0;
}
pasul doi - obțineți coordonatele 1 (targetX, targetY)
targetY = strArr.findIndex(val => {
returnare val.include('1');
});
targetX = strArr[targetY].search(/1/);
Pasul trei Găsiți cea mai mică cale către un 2
fie res = strArr.length * strArr[0].length;
--------------------Ajutoare----------------------
În ciuda numelui, utilizați pentru distanța coloană și rând
funcția rowDist(y, x, len) {
returnează Math.min(Math.abs(x - y), Math.abs(y - x + len));
}
funcția ClosestEnemyII(strArr) {
Găsiți eroul
fie heroy = -1;
fie heroX = -1;
pentru (fie i = 0; i < strArr.length; i++) {
let result = strArr[i].indexOf(1);
dacă (rezultat > -1) {
heroX = rezultat;
erou = i;
}
}
consolă.log(inamici);
întoarcere aproapeDistanță;
funcția ClosestEnemyII(strArr) {
matrice var = strArr.map(line => line.split('').map(Număr));
var minDistanță = matrice.lungime * 2;
Poziția mea: 1
var meIndici;
Locațiile inamicilor: 2
var enemiesIndici = [];
Identificați locațiile 1 și 2
pentru (rândul var = 0; rândul < matricea.length; rândul++) {
pentru (coloana var = 0; coloana < matrice[0].length; column++) {
dacă (matrice[rând][coloană] === 1) {
meIndici = [rând, coloană];
} else if (matrice[rând][coloană] === 2) {
enemiesIndices.push([rând, coloană]);
}
}
}
Exemple
Intrare: "5556293383563665"
Ieșire: false
Intrare: "5788888888882339999"
Ieșire: adevărat
funcția NumberStream(str) {
pentru (fie i = 2; i < 10; i++) {
fie iChar = i.toString();
fie ac = iChar.repeat(i);
if (str.indexOf(ac) !== -1) {
întoarcere adevărată;
}
}
Codul merge aici
returnează fals;
funcția NumberStream(str) {
funcția NumberStream(str) {
Generați mai întâi modele
modele var = [];
pentru (var i = 1; i < 10; i++) {
patterns.push(String(i).repeat(i));
}
Puneți funcția LargestFour(arr) să ia matricea de numere întregi stocate în arr și să găsească cele
mai mari patru elemente și să returneze suma lor. De exemplu: dacă arr este [4, 5, -2, 3, 1, 2, 6, 6],
atunci cele mai mari patru elemente din această matrice sunt 6, 6, 4 și 5, iar suma totală a acestor numere
este 21, deci programul dvs. ar trebui să returneze 21. Dacă există mai puțin de patru numere în matrice,
programul ar trebui să returneze suma tuturor numerelor din matrice.
Exemple
Intrare: [0, 0, 2, 3, 7, 1]
Ieșire: 13
funcția LargestFour(arr) {
fie newArr = arr.sort((val1, val2) => {
returnează val2 - val1;
})
.splice(0, 4);
return newArr.reduce((val1, val2) => {
returnează val1 + val2;
}, 0);
}
Păstrați această funcție sunați aici
LargestFour(linie de citire());
funcția LargestFour(arr) {
funcția LargestFour(arr) {
returnează arr.sort((a, b) => a < b).slice(0, 4).reduce((sumă, v) => sumă + v,
0);
}
Caractere distincte
Exemple
Intrare: "eeeemmmmmmmmm1000"
Ieșire: false
funcția DistinctCharacters(str) {
let mySet = set nou(str.split(''));
returnare mySet.size >= 10 ? adevărat : fals
}
funcția DistinctCharacters(str) {
fie charCodes = [];
pentru (fie i = 0; i < str.length; i++) {
dacă (!charCodes.includes(str.charCodeAt(i))) {
charCodes.push(str.charCodeAt(i));
}
}
return (charCodes.length >= 10) ? adevărat : fals;
funcția DistinctCharacters(str) {
distincții var = {};
Semne de întrebare
Solicitați funcției QuestionsMarks (str) să ia parametrul șir str, care va conține numere cu o
singură cifră, litere și semne de întrebare și să verifice dacă există exact 3 semne de întrebare între
fiecare pereche de două numere care însumează până la 10. Dacă da, atunci programul dvs. ar trebui să
returneze șirul adevărat, altfel ar trebui să returneze șirul fals. Dacă nu există două numere care
însumează până la 10 în șir, atunci programul dvs. ar trebui să returneze și fals.
De exemplu: dacă str este "arrb6??? 4xxbl5??? eee5" atunci programul dvs. ar trebui să revină
adevărat, deoarece există exact 3 semne de întrebare între 6 și 4 și 3 semne de întrebare între 5 și 5 la
sfârșitul șirului.
Exemple
Intrare: "aa6?9"
Ieșire: false
Carcasă de cămilă
Puneți funcția CamelCase (str) să ia parametrul str transmis și să-l returneze în formatul corect al
cazului de cămilă în care prima literă a fiecărui cuvânt este scrisă cu majusculă (cu excepția primei
litere). Șirul va conține doar litere și o combinație de caractere de punctuație delimitatoare care separă
fiecare cuvânt.
De exemplu: dacă str este "BOB iubește-codificarea", atunci programul dvs. ar trebui să returneze șirul
bobLovesCoding.
Exemple
return strArr.join('');
}
Conversia ASCII
Funcția ASCIIConversion(str) preia parametrul str transmis și returnează un nou șir în care
fiecare caracter, în afară de caracterul spațiu, este înlocuit cu codul de caractere zecimal corespunzător.
De exemplu: dacă str este "câine", atunci programul dvs. ar trebui să returneze șirul 100111103
deoarece d = 100, o = 111, g = 103.
Exemple
Solicitați funcției SimpleEvens(num) să verifice dacă fiecare număr din parametrul trecut este par.
Dacă da, returnați șirul true, altfel returnați șirul false. De exemplu: dacă num este 4602225 programul
dvs. ar trebui să returneze șirul fals, deoarece 5 nu este un număr par.
Exemple
Intrare: 2222220222
Ieșire: adevărat
Intrare: 20864646452
Ieșire: false
funcția SimpleEvens(num) {
return num.toString(10).search(/[13579]/) === -1 ? "true": "false";
}
SimpleEvens(readline());
Cazul șarpelui
Puneți funcția SnakeCase (str) să ia parametrul str transmis și să-l returneze în formatul corect al
cazului șarpelui, unde fiecare cuvânt este scris cu litere mici și separat de cuvintele adiacente printr-o
subliniere. Șirul va conține doar litere și o combinație de caractere de punctuație delimitatoare care
separă fiecare cuvânt.
De exemplu: dacă str este "BOB iubește-codificarea", atunci programul dvs. ar trebui să returneze șirul
bob_loves_coding.
Exemple
SnakeCase(readline());
Găsiți intersecția
De exemplu: dacă strArr conține ["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"] ieșirea ar trebui să returneze
"1,4,13", deoarece acele numere apar în ambele șiruri. Matricea dată nu va fi goală și fiecare șir din
interiorul matricei va fi format din numere sortate în ordine crescătoare și poate conține numere
negative.
Exemple
Exemple
Intrare: [2, 2, 2, 2, 4, 1]
Ieșire: false
Îmbinare șiruri
Solicitați funcției StringMerge(str) să citească parametrul str transmis, care va conține un șir mare
de caractere alfanumerice cu un singur caracter asterisc, împărțind șirul uniform în două șiruri separate.
Scopul dvs. este să returnați un șir nou prin împerecherea caracterelor în locațiile corespunzătoare din
ambele șiruri. De exemplu: dacă str este "abc1*kyoo" atunci programul dvs. ar trebui să returneze șirul
akbyco1o, deoarece o pereche cu k, b perechi cu y etc. Șirul se va împărți întotdeauna uniform cu
asteriscul din centru.
Exemple
Unul Decremented
Puneți funcția OneDecremented(str) să numere de câte ori apare o cifră care este exact cu una mai
mică decât cifra anterioară. De exemplu: dacă str este "5655984", atunci programul dvs. ar trebui să
returneze 2, deoarece 5 apare direct după 6 și 8 apare direct după 9. Intrarea va conține întotdeauna cel
puțin 1 cifră.
Exemple
Intrare: "56"
Ieșire: 0
Intrare: "9876541110"
Ieșire: 6
funcția OneDecremented(num) {
contor fie = 0;
fie arr = num.toString().split('');
arr.forEach((val, ind) => {
if (parseInt(val, 10) - parseInt(arr[ind + 1], 10) === 1) {
contra++;
}
})
contor de retur;
}
Fuziunea elementelor
Exemple
Intrare: [1, 1, 1, 2]
Ieșire: 1
funcția ElementMerger(arr) {
dacă (arr.length === 1) {
aranjament de returnare[0];
} altceva {
newArr = [];
arr.forEach((val, ind) => {
dacă (ind < arr.length - 1) {
newArr.push(Math.abs(val - arr[ind + 1]));
}
})
returnează ElementMerger(newArr);
}
}
ElementMerger(readline());
GCF
Funcția GCF(arr) ia matricea de numere stocate în arr care va conține întotdeauna doar două numere
întregi pozitive și returnează cel mai mare factor comun al acestora. De exemplu: dacă arr este [45,
12], atunci programul dvs. ar trebui să returneze 3. Vor exista întotdeauna două elemente în matrice și
vor fi numere întregi pozitive.
Exemple
Intrare: [1, 6]
Ieșire: 1
Număr de serie
Solicitați funcției SerialNumber(str) să preia parametrul str transmis și să determine dacă este un
număr de serie valid cu următoarele constrângeri:
1. Trebuie să conțină trei seturi, fiecare cu trei cifre (de la 1 la 9) separate printr-o perioadă.
2. Primul set de cifre trebuie să însumeze un număr par.
3. Al doilea set de cifre trebuie să însumeze un număr impar.
4. Ultima cifră din fiecare set trebuie să fie mai mare decât cele două cifre anterioare din același set.
Dacă toate restricțiile de mai sus sunt îndeplinite în șir, programul ar trebui să returneze șirul adevărat,
altfel programul ar trebui să returneze șirul fals. De exemplu: dacă str este "224.315.218", atunci
programul dvs. ar trebui să returneze "adevărat".
Exemple
Intrare: "11.124.667"
Ieșire: false
Intrare: "114.568.112"
Ieșire: adevărat
funcția SerialNumber(str) {
Verificați formatul șirului
Fie gol = /^\d{3}\.\d{3}\.\d{3}$/
dacă (!goal.test(str)) {
returnează mențiunea "false";
}
Perioade de șir
De exemplu: dacă str este "abcababcababcab", atunci programul dvs. ar trebui să returneze abcab,
deoarece acesta este cel mai lung subșir care se repetă de 3 ori pentru a crea șirul final. Un alt exemplu:
dacă str este "ababababababab", atunci programul dvs. ar trebui să returneze abababab, deoarece este
cel mai lung subșir. Dacă șirul de intrare conține un singur caracter, programul ar trebui să returneze
șirul -1.
Exemple
Intrare: "abcxabc"
Ieșire: -1
Intrare: "affedaaffed"
Ieșire: -1
funcția StringPeriods(str) {
Vom folosi doar lungimi de subșiruri care se împart uniform în str
const len = str.lungime;
const pivot = Math.max(Math.trunc(Math.sqrt(len)), len);
pentru (fie i = 2; i <= pivot; i++) {
dacă (len % i === 0) {
bloc const = str.slice(0, len / i);
dacă (block.repeat(i) === str) {
bloc de retur;
}
}
}
întoarcere -1;
}
Palindrome Swapper
Exemple
Intrare: "anna"
Ieșire: anna
Intrare: "kyaak"
Ieșire: caiac
funcția PalindromeSwapper(str) {
fie inputArray = str.split('');
fie strLen = inputArray.length;
let palTester = function(arr) {
fie len = arr.length;
pentru (fie i = 0; i < len; i++) {
dacă (arr[i] !== arr[len - (1 + i)]) {
returnează fals;
}
}
întoarcere adevărată;
}
pentru (fie i = 0; i < strLen - 1; i++) {
fie newArray = Array.from(inputArray);
newArray.splice(i, 2, newArray[i + 1], newArray[i]);
if (palTester(newArray)) {
return newArray.join('');
}
}
întoarcere -1;
}
Eliminarea parantezelor
Solicitați funcției RemoveBrackets(str) să ia parametrul str string trecut, care va conține numai
caracterele "(" și ")", și să determine numărul minim de paranteze care trebuie eliminate pentru a crea
un șir de paranteze potrivite corect. De exemplu: dacă str este "(())))", atunci programul dvs. ar trebui
să returneze numărul 1. Răspunsul ar putea fi 0 și va exista întotdeauna cel puțin un set de paranteze
potrivite în șir.
Exemple
Intrare: "(())()(("
Ieșire: 3
Intrare: "(()("
Ieșire: 2
funcția RemoveBrackets(str) {
să arunce = 0;
contor fie = 0;
fie arr = str.split('');
fie len = arr.length;
aruncări de întoarcere;
}
Linie de comandă
Puneți funcția CommandLine(str) să preia parametrul str care reprezintă parametrii dați unei
comenzi într-un sistem PDP vechi. Parametrii sunt jetoane alfanumerice (fără spații) urmate de un semn
egal și de valoarea lor corespunzătoare. Mai multe perechi de parametri/valori pot fi plasate pe linia de
comandă cu un singur spațiu între fiecare pereche. Simbolurile și valorile parametrilor nu pot conține
semne egale, dar valorile pot conține spații. Scopul funcției este de a izola parametrii și valorile pentru a
returna o listă de lungimi ale parametrilor și valorilor. Acesta trebuie să furnizeze rezultatul său în
același format și în aceeași ordine, înlocuind fiecare intrare (jetoane și valori) cu lungimea
corespunzătoare.
De exemplu, dacă str este: "SampleNumber = 3234 provider = Dr. M. Welby patient = John Smith
priority = High", atunci funcția dvs. ar trebui să returneze șirul "12 = 4 8 = 12 7 = 10 8 = 4", deoarece
"SampleNumber" este un simbol de 12 caractere cu o valoare de 4 caractere ("3234") urmată de
"furnizor", care este un simbol de 8 caractere urmat de o valoare de 12 caractere ("Dr. M. Welby"), etc.
Exemple
Deci, programul dvs. ar trebui să returneze șirul "plin, plin, jumătate gol, gol".
Exemple
Intrare: "0,38"
Ieșire: jumătate gol gol gol
Intrare: "4.5"
Ieșire: plină plină jumătate completă
funcția StarRating(str) {
fie num = (Math.round(parseFloat(str) * 2)) / 2;
fie starString = '';
fie jumătate = ! (Math.trunc(num) === num);