Solução de Problemas-1
Solução de Problemas-1
Solução de Problemas-1
Faça com que a função FirstReverse(str) pegue o parâmetro str que está sendo passado e retorne
a string em ordem inversa. Por exemplo: se a string de entrada for "Hello World and Coders", então seu
programa deve retornar a string sredoC dna dlroW olleH.
Exemplos
Entrada: "coderbyte"
Saída: etybredoc
função FirstReverse(str) {
retornar newString;
}
função FirstReverse(str) {
código vai aqui
retornar str.split('').reverse().join('');
Faça com que a função FirstFactorial(num) pegue o parâmetro num que está sendo passado e
retorne o fatorial dele. Por exemplo: se num = 4, então seu programa deve retornar (4 * 3 * 2 * 1) = 24.
Para os casos de teste, o intervalo será entre 1 e 18 e a entrada será sempre um inteiro.
Exemplos
Entrada: 4
Saída: 24
Entrada: 8
Saída: 40320
função FirstFactorial(num) {
seja fatorial = 1;
fatorial de retorno;
função FirstFactorial(num) {
função FirstFactorial(num) {
deixe a resposta = 1;
para (deixe índice = 1; índice <= núm; índice++) {
resposta *= índice;
}
retorno de resposta;
Faça com que a função LongestWord(sen) pegue o parâmetro sen que está sendo passado e retorne a
maior palavra na cadeia de caracteres. Se houver duas ou mais palavras com o mesmo comprimento,
retorne a primeira palavra da cadeia de caracteres com esse comprimento. Ignore a pontuação e assuma
que sen não estará vazio.
Exemplos
função LongestWord(sen) {
sen = sen.trim();
sen = sen.replace(/[^a-zA-Zsd]/g, '');
retorno arr.shift();
let validCharacters =
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
deixe maxLength = 0;
let longestWord = '';
}
}
função LongestWord(sen) {
var trimmed = sen.replace(/[^\w]/g, ' ');
var palavras = trimmed.split(/\s+/);
var longestWord = words.sort(function(a, b) {return b.length - a.length;}) [0];
retornar por mais tempo;
}
Faça com que a função LetterChanges(str) pegue o parâmetro str que está sendo passado e
modifique-o usando o algoritmo a seguir. Substitua cada letra na cadeia de caracteres pela letra que a
segue no alfabeto (ou seja.c passa a ser d, z passa a ser a). Em seguida, coloque cada vogal em
maiúsculas nesta nova cadeia de caracteres (a, e, i, o, u) e, finalmente, retorne essa cadeia modificada.
Exemplos
Entrada: "hello*3"
Saída: Ifmmp*3
Entrada: "momentos divertidos!"
Saída: gvO Ujnft!
função LetterChanges(str) {
str = str.trim().toLowerCase();
var len = str.comprimento;
var newStr = '';
função LetterChanges(str) {
vogais = 'aeiou';
vogais capitlize
for (let i = 0; i < newString.length; i++) {
if (vogais.includes(newString[i])) {
finalString += newString[i].toUpperCase();
} else {
finalString += newString[i];
}
}
retornar finalString;
função LetterChanges(str) {
str = str.replace(/[a-zA-Z]/g, function(ch) {
se (ch === 'z') retornar 'a';
senão se (ch === 'Z') retornar 'A';
caso contrário, retorne String.fromCharCode(ch.charCodeAt(0) + 1);
});
Faça com que a função SimpleAdding(num) some todos os números de 1 a num. Por exemplo: se a
entrada for 4, então seu programa deve retornar 10 porque 1 + 2 + 3 + 4 = 10. Para os casos de teste, o
parâmetro num será qualquer número de 1 a 1000.
Exemplos
Entrada: 12
Saída: 78
função SimpleAdding(num) {
if (num === 1) {
retorno 1;
}
senão {
return num + SimpleAdding(num -1);
}
}
função SimpleAdding(num) {
deixe a soma = 0;
para (i = 1; i <= num; i++) {
soma += i;
}
soma de devolução;
função SimpleAdding(num) {
Letra maiúscula
Faça com que a função LetterCapitalize(str) pegue o parâmetro str que está sendo passado e
coloque em maiúsculas a primeira letra de cada palavra. As palavras serão separadas por apenas um
espaço.
Exemplos
função LetterCapitalize(str) {
Retorno Str;
função LetterCapitalize(str) {
retornar newString;
}
função LetterCapitalize(str) {
Símbolos simples
Faça com que a função SimpleSymbols(str) pegue o parâmetro str que está sendo passado e
determine se é uma sequência aceitável retornando a cadeia de caracteres true ou false. O parâmetro
str será composto por símbolos + e = com vários caracteres entre eles (ou seja.++d+===+c++==a) e
para que a cadeia de caracteres seja verdadeira, cada letra deve ser cercada por um símbolo +. Assim, a
cadeia à esquerda seria falsa. A cadeia de caracteres não estará vazia e terá pelo menos uma letra.
Exemplos
Entrada: "+d+=3=+s+"
Saída: true
Entrada: "f++d+"
Saída: false
função SimpleSymbols(str) {
if (/^[a-zA-Z]/.test(str) || /[a-zA-Z]$/.test(str)) {
retornar false;
}
else if (/[^+][a-zA-Z]/.test(str) || /[a-zA-Z][^+]/.test(str)) {
retornar false;
}
senão {
retorno verdadeiro;
}
função SimpleSymbols(str) {
Verificar Nums
Faça com que a função CheckNums(num1,num2) pegue ambos os parâmetros que estão sendo
passados e retorne a string true se num2 for maior que num1, caso contrário, retorne a string false. Se
os valores dos parâmetros forem iguais entre si, retorne a cadeia de caracteres -1.
Exemplos
VER DESAFIO
função CheckNums(num1,num2) {
if (num1 == num2) {
retorno "-1";
}
senão {
retorno (num2 > num1);
}
}
função CheckNums(num1,num2) {
if (num2 > num1) {
retorno verdadeiro;
} else if (num1 === num2) {
retorno '-1';
} else {
retornar false;
}
função CheckNums(num1,num2) {
Tempo de conversão
Faça com que a função TimeConvert(num) pegue o parâmetro num que está sendo passado e retorne
o número de horas e minutos em que o parâmetro converte (ou seja. se num = 63, então a saída deve ser
1:3). Separe o número de horas e minutos com dois pontos.
Exemplos
Entrada: 126
Saída: 2:6
função TimeConvert(num) {
var horas = Math.floor(num/60);
var minutos = num % 60;
var str = horas + ":" + minutos;
Retorno Str;
}
função TimeConvert(num) {
função TimeConvert(num) {
Sopa de letrinhas
Faça com que a função AlphabetSoup(str) pegue o parâmetro str string que está sendo passado e
retorne a string com as letras em ordem alfabética (ou seja. Olá torna-se Ehllo). Suponha que números e
símbolos de pontuação não serão incluídos na cadeia de caracteres.
Exemplos
Entrada: "coderbyte"
Saída: bcdeeorty
Entrada: "hooplah"
Saída: ahhloop
função AlphabetSoup(str) {
função AlphabetSoup(str) {
função AlphabetSoup(str) {
Verificação AB
Faça com que a função ABCheck(str) pegue o parâmetro str que está sendo passado e retorne a string
true se os caracteres a e b estiverem separados por exatamente 3 lugares em qualquer lugar da string pelo
menos uma vez (ou seja. "Lane emprestada" resultaria em true porque há exatamente três caracteres
entre a e b). Caso contrário, retorne a cadeia de caracteres false.
Exemplos
retorno patt.test(str);
função ABCheck(str) {
if (str.length < 5) {
retornar false;
}
console.log(str.length);
retornar false;
função ABCheck(str) {
Faça com que a função VowelCount(str) pegue o parâmetro str string que está sendo passado e
retorne o número de vogais que a string contém (ou seja. "Todas as vacas comem capim e moo" voltaria
8). Não conte y como vogal para este desafio.
Exemplos
Entrada: "hello"
Saída: 2
Entrada: "coderbyte"
Saída: 3
função VowelCount(str) {
if (arr == null) {
retorno 0;
}
senão {
retorno arr.length;
}
}
função VowelCount(str) {
vogais = 'aeiou';
let count = 0;
função VowelCount(str) {
código vai aqui
retornar str.split('').filter(function(ch) {
retornar ['a', 'e', 'i', 'o', 'u'].indexOf(ch.toLowerCase()) > -1;
}).comprimento;
Contagem de palavras
Faça com que a função WordCount(str) pegue o parâmetro str string que está sendo passado e
retorne o número de palavras que a string contém (por exemplo, "Never eat shredded wheat or cake"
retornaria 6). As palavras serão separadas por espaços individuais.
Exemplos
retorno de resposta;
função WordCount(str) {
retorno str.split(' ').length;
}
função WordCount(str) {
Ex Ah
Faça com que a função ExOh(str) pegue o parâmetro str que está sendo passado e retorne a string
true se houver um número igual de x's e o's, caso contrário, retorne a string false. Apenas essas duas
letras serão inseridas na string, sem pontuação ou números. Por exemplo: se str é "xooxxxxooxo",
então a saída deve retornar false porque existem 6 x's e 5 o's.
Exemplos
Entrada: "xooxxo"
Saída: true
Entrada: "x"
Saída: false
função ExOh(str) {
var regExPatternX = /x/gi;
var regExPatternO = /o/gi;
função ExOh(str) {
deixe xCount = 0;
deixe oCount = 0;
função ExOh(str) {
Palíndromo
Faça com que a função Palindrome(str) pegue o parâmetro str que está sendo passado e retorne a
string true se o parâmetro for um palíndromo (a string é a mesma para frente que para trás ) caso
contrário, retorne a string false. Por exemplo: "carro de corrida" também é "carro de corrida" para trás.
Pontuação e números não farão parte da cadeia de caracteres.
Exemplos
Entrada: "olho"
Saída: true
função Palindrome(str) {
modificado = str.replace(/W/g,"");
função Palindrome(str) {
função Palindrome(str) {
Arith Geo
Exemplos
Entrada: [5,10,15]
Saída: Aritmética
Entrada: [2,4,16,24]
Saída: -1
função ArithGeo(arr) {
var len = arr.comprimento;
var arithK = arr[1] - arr[0];
var geoK = arr[1] / arr[0];
retorno -1;
}
função ArithGeo(arr) {
if (aritmética) {
retorno 'Aritmética';
}
if (geométrico) {
retorno 'Geométrico';
}
retorno -1;
função ArithGeo(arr) {
Adição de matriz I
Faça com que a função ArrayAdditionI(arr) pegue a matriz de números armazenados em arr e
retorne a cadeia de caracteres true se qualquer combinação de números na matriz (excluindo o maior
número) puder ser adicionada para igualar o maior número na matriz, caso contrário, retorne a string
false. Por exemplo: se arr contiver [4, 6, 23, 10, 1, 3] a saída deve retornar true porque 4 + 6 + 10 + 3
= 23. A matriz não estará vazia, não conterá todos os mesmos elementos e poderá conter números
negativos.
Exemplos
Entrada: [5,7,16,1,2]
Saída: false
Entrada: [3,5,-1,8,12]
Saída: true
função ArrayAdditionI(arr) {
alvo do VAR;
var addArr = arrayPrep(arr);
var len = addArr.length;
var permNum = Math.pow(2, len);
console.log('test0 ', permNum, target, addArr);
função arrayPrep(arr2) {
arr.sort(função(a, b){
retornar a - b
});
destino = arr2.pop()
Retorno ARR2
}
}
função ArrayAdditionI(arr) {
deixe a soma = 0;
for (deixe j = 0; j < combos[i].length; j++) {
if (combos[i][j] === '1') {
soma += arr[j];
}
}
função ArrayAdditionI(arr) {
Contagem de Letras I
Faça com que a função LetterCountI(str) pegue o parâmetro str que está sendo passado e retorne
a primeira palavra com o maior número de letras repetidas. Por exemplo: "Hoje, é o melhor dia de todos
os tempos!" deve voltar maior porque tem 2 e's (e 2 t's) e vem antes de sempre que também tem 2 e's.
Se não houver palavras com letras repetidas, retorne -1. As palavras serão separadas por espaços.
Exemplos
if (newarr[0][1] == 1) {
retorno -1;
}
senão {
Retorno Newarr[0][0];
}
}
função LetterCountI(str) {
deixe bestCount = 0;
deixe bestWord = '';
função LetterCountI(str) {
Faça com que a função SecondGreatLow(arr) pegue a matriz de números armazenados em arr e
retorne o segundo menor e o segundo maiores números, respectivamente, separados por um espaço. Por
exemplo: se arr contiver [7, 7, 12, 98, 106] a saída deve ser 12 98. A matriz não estará vazia e conterá
pelo menos 2 números. Pode ficar complicado se houver apenas dois números!
Exemplos
função solitária(arr) {
var len = arr.comprimento;
var testobj = {};
saída var = [];
contagem de var = 0;
para (var i = 0; i < len; i++) {
var titular = arr[i];
if (!testobj[titular]) {
testobj[holder] = verdadeiro;
output[count++] = titular;
}
}
saída de retorno
}
}
função SecondGreatLow(arr) {
função SecondGreatLow(arr) {
Divisão Stringified
Faça com que a função DivisionStringified(num1,num2) pegue os dois parâmetros que estão
sendo passados, divida num1 por num2 e retorne o resultado como uma cadeia de caracteres com
vírgulas formatadas corretamente. Se uma resposta tiver apenas 3 dígitos, retorne o número sem vírgulas
(ou seja.2/3 deve sair "1"). Por exemplo: se num1 é 123456789 e num2 é 10000 a saída deve ser
"12.346".
Exemplos
if (numleng > 3) {
var arr = string.split("");
para (var i= numleng - 3; i > 0; i = i - 3) {
arr.splice(i, 0, ",");
}
var newstring = arr.join("");
}
retornar newstring;
função DivisionStringified(num1,num2) {
função DivisionStringified(num1,num2) {
resultado de retorno;
}
Contagem de Minutos I
Faça com que a função CountingMinutesI(str) pegue o parâmetro str que está sendo passado, que
será duas vezes (cada uma formatada corretamente com dois pontos e am ou pm) separada por um hífen
e retorne o número total de minutos entre os dois tempos. O horário será em formato de relógio de 12
horas. Por exemplo: se str é 9:00am-10:00am, então a saída deve ser 60. Se str é 1:00pm-11:00am a
saída deve ser 1320.
Exemplos
Entrada: "12:30pm-12:00am"
Saída: 690
Entrada: "1:23am-1:08am"
Saída: 1425
Soluções para Contagem de Minutos I
JAVASCRIPT
VER DESAFIO
função 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);
if (ampm1 == "pm" && hour1 != 12) {
hora1 = hora1 + 12;
}
if (ampm2 == "pm" && hour2 != 12) {
hora2 = hora2 + 12;
}
if (hour1 == 12 && ampm1 == "am") {
hora1 = 0;
}
if (hour2 == 12 && ampm2 == "am") {
hora2 = 0;
}
var time1 = (hora1*60) + min1;
var time2 = (hora2*60) + min2;
if (diff < 0) {
diff = diff + (60 * 24);
}
diff de retorno;
função CountingMinutesI(str) {
função CountingMinutesI(str) {
função parseMinutes(timeStr) {
tempo var = timeStr.match(/d+/g);
var hora = parseInt(tempo[0]), minuto = parseInt(tempo[1]);
var ampm = (timeStr.match(/[a|p]m/g)[0] === 'am') ? 0 : 1;
se (hora === 12) hora = 0;
Faça com que a função MeanMode(arr) pegue a matriz de números armazenados em arr e retorne 1 se
o modo for igual à média, 0 se eles não forem iguais entre si (ou seja.[5, 3, 3, 3, 1] deve retornar 1
porque a moda (3) é igual à média (3)). A matriz não estará vazia, conterá apenas inteiros positivos e não
conterá mais de um modo.
Exemplos
Entrada: [1, 2, 3]
Saída: 0
Entrada: [4, 4, 4, 6, 2]
Saída: 1
função MeanMode(arr) {
len = arr.comprimento
Passo 1: determinar a média - autoexplicativo
média da função (arr) {
contagem de var = 0;
para (var i = 0; i < len; i++) {
contagem += arr[i]
}
console.log (contagem / len)
contagem de retorno / len
}
Passo 2: determine o modo. Precisamos contar quantos de cada tipo estão na
matriz. Uma alternativa é manter um contador ativo, classificar a matriz e, em
seguida, contar até que um item mude, mantendo o controle da contagem máxima e do
valor associado. O seguinte é uma maneira muito mais fácil, supondo que se tenha uma
familiaridade básica com objetos javascript. Ele faz de cada nova entrada uma chave
e mantém a contagem de quantos de cada há e, em seguida, faz uma matriz dos pares
chave-valor criados.
função MeanMode(arr) {
Modo de localização
deixe maisOcorrências = 0;
modo let = 0;
para (deixe i = 0; i < arr.length; i++) {
deixe marco = arr[i];
para (deixe j = i+1, count = 0; j < arr.length; j++) {
if (marco === arr[j]) {
fósforo!
contagem++;
if (contagem > mostOccurances) {
mostOccurances = contagem;
modo = arr[j];
}
}
}
}
Encontrar média
deixe a média = 0;
para (deixe i = 0; i < arr.length; i++) {
média += arr[i];
}
média = Math.round(média/arr.comprimento);
função MeanMode(arr) {
Inserção de traço
Faça com que a função DashInsert(str) insira traços ('-') entre cada dois números ímpares em str.
Por exemplo: se str é 454793 a saída deve ser 4547-9-3. Não conte zero como um número ímpar.
Exemplos
função DashInsert(num) {
var strnum = num.toString();
var arr = strnum.split("");
retorno x;
função DashInsert(str) {
função DashInsert(str) {
função isOdd(n) {
retorno parseInt(n) % 2 === 1;
}
Faça com que a função SwapCase(str) pegue o parâmetro str e troque o caso de cada caractere. Por
exemplo: se str é "Hello World" a saída deve ser hELLO wORLD. Que os números e símbolos
permaneçam como estão.
Exemplos
Entrada: "Hello-LOL"
Saída: hELLO-lol
função SwapCase(str) {
função SwapCase(str) {
Faça com que a função NumberSearch(str) pegue o parâmetro str, procure todos os números na
cadeia de caracteres, adicione-os e retorne esse número final. Por exemplo: se str é "88Hello 3World!"
a saída deve ser 91. Você terá que diferenciar entre números de um dígito e números de vários dígitos,
como no exemplo acima. Assim, "55Hello" e "5Hello 5" devem retornar duas respostas diferentes. Cada
cadeia de caracteres conterá pelo menos uma letra ou símbolo.
Exemplos
Entrada: "75Number9"
Saída: 84
retornar ans
}
função NumberAddition(str) {
se (! DIGITS.includes(str[i])) {
if (número !== '') {
numbers.push(número);
}
número = '';
} else {
número += str[i];
deixe a soma = 0;
para (deixe i = 0; i < numbers.length; i++) {
soma += parseInt(numbers[i]);
}
soma de devolução;
}
função NumberAddition(str) {
números var = str.match(/\d+/g) || [];
return numbers.reduce(function(sum, number) {return sum + Number(number)}, 0);
}
Terceiro Maior
Faça com que a função ThirdGreatest(strArr) pegue a matriz de cadeias de caracteres armazenadas
em strArr e retorne a terceira maior palavra dentro dela. Então, por exemplo: se strArr é ["hello",
"world", "before", "all"] sua saída deve ser world porque "before" tem 6 letras, e "hello" e "world" são
ambos 5, mas a saída deve ser world porque apareceu como a última palavra de 5 letras na matriz. Se
strArr foi ["olá", "mundo", "depois", "tudo"] a saída deve ser depois porque as três primeiras palavras
têm todas as 5 letras, então retorne a última. A matriz terá pelo menos três cadeias de caracteres e cada
cadeia de caracteres conterá apenas letras.
Exemplos
Entrada: ["coder","byte","code"]
Saída: código
Entrada: ["abc","defg","z","hijk"]
Saída: abc
função ThirdGreatest(strArr) {
strArr.sort(function(a, b) {return b.length - a.length});
retorno strArr[2];
}
função ThirdGreatest(strArr) {
retorno strArr[2];
função ThirdGreatest(strArr) {
Faça com que a função PowersofTwo(num) pegue o parâmetro num que está sendo passado, que será
um inteiro, e retorne a string true se for uma potência de dois. Se não for, retorne a cadeia de caracteres
false. Por exemplo, se a entrada for 16, seu programa deve retornar a cadeia de caracteres true, mas se a
entrada for 22, a saída deve ser a string false.
Exemplos
Entrada: 4
Saída: true
Entrada: 124
Saída: false
função PowersofTwo(num) {
senão {
enquanto (num >= 2){
teste var = num%2;
if (teste == 0){
núm = núm/2
ans = "verdadeiro";}
senão{
núm = 0;
ans = "falso"}
}
}
código vai aqui
retorno ans;
função PowersofTwo(num) {
função PowersofTwo(num) {
Persistência Aditiva
Faça com que a função AdditivePersistence(num) pegue o parâmetro num que está sendo
passado que sempre será um inteiro positivo e retorne sua persistência aditiva que é o número de vezes
que você deve adicionar os dígitos em num até atingir um único dígito. Por exemplo: se num é 2718,
então seu programa deve retornar 2 porque 2 + 7 + 1 + 8 = 18 e 1 + 8 = 9 e você para em 9.
Exemplos
Entrada: 4
Saída: 0
Entrada: 19
Saída: 2
VER DESAFIO
função AdditivePersistence(num) {
função arrprep(numb) {
var numstr = numb.toString();
var arr = numstr.split('');
var numarr = arr.map(função(val) {
return parseInt(val)
})
Retornar Numarr
}
função addup(arr) {
var redux = arr.reduce(função(a, b){
retornar a + b })
Retorno Redux
}
contagem de var = 0;
enquanto (num > 9) {
num = addup(arrprep(num));
contagem++;
}
contagem de retornos
função AdditivePersistence(num) {
núm = num.toString();
let count = 0;
}
contagem de retornos;
}
função AdditivePersistence(num) {
Persistência Multiplicativa
Faça com que a função MultiplicativePersistence(num) pegue o parâmetro num que está
sendo passado que sempre será um inteiro positivo e retorne sua persistência multiplicativa que é o
número de vezes que você deve multiplicar os dígitos em num até chegar a um único dígito. Por
exemplo: se num é 39, então seu programa deve retornar 3 porque 3 * 9 = 27, depois 2 * 7 = 14 e
finalmente 1 * 4 = 4 e você para em 4.
Exemplos
Entrada: 4
Saída: 0
Entrada: 25
Saída: 2
função MultiplicativePersistence(num) {
função numprep(num) {
var strnum = num.toString();
var arr = strnum.split('');
var numarr = arr.map(função(val) {
return parseInt(val)});
Retornar Numarr
}
função multnums(arr) {
var newnum = arr.reduce(função(a, b) {
retornar a * b})
retornar newnum
}
código vai aqui
contagem de var = 0;
função MultiplicativePersistence(num) {
núm = num.toString();
let count = 0;
enquanto(1) {
if (num.length === 1) {
quebrar;
}
contagem++;
deixe a soma = 1;
para (deixe i = 0; i < num.length; i++) {
soma *= parseInt(num[i]);
}
num = soma.toString();
}
contagem de retornos;
função MultiplicativePersistence(num) {
Exemplos
Entrada: ["1","2","E","E","3"]
Saída: 1,2
Entrada: ["4","E","1","E","2","E","3","E"]
Saída: 4,1,2,3
função OffLineMinimum(strArr) {
var len = strArr.length;
contagem de var = 0;
var holdArr = [];
var ans = [];
função OffLineMinimum(strArr) {
deixe menorÍndice = 0;
let smallestNumber = null;
strArr.forEach(function(value,index){
if (índice > maxIndex) {
retornar;
}
if (valor !== 'E' && valor !== 'R') {
if (smallestNumber === null || parseInt(value) < smallestNumber) {
menorÍndice = índice;
smallestNumber = parseInt(valor);
}
}
});
strArr[menorÍndice] = 'R';
retornar menorNúmero;
}
return result.join(',');
função OffLineMinimum(strArr) {
Faça com que a função ChangingSequence(arr) pegue a matriz de números armazenados em arr e
retorne o índice no qual os números param de aumentar e começam a diminuir ou param de diminuir e
começam a aumentar. Por exemplo: se arr é [1, 2, 4, 6, 4, 3, 1], então seu programa deve retornar 3
porque 6 é o último ponto na matriz onde os números estavam aumentando e o próximo número começa
uma sequência decrescente. A matriz conterá pelo menos 3 números e poderá conter apenas uma única
sequência, aumentando ou diminuindo. Se houver apenas uma única sequência na matriz, seu programa
deverá retornar -1. A indexação deve começar com 0.
Exemplos
índice de retorno;
}
índice de retorno;
}
}
função ChangingSequence(arr) {
função ChangingSequence(arr) {
se (arr.length < 2) retornar -1;
var crescente = arr[0] < arr[1];
retorno -1;
}
Intervalos sobrepostos
Exemplos
Entrada: [5,11,1,5,1]
Saída: true
Entrada: [1,8,2,4,4]
Saída: false
função OverlappingRanges(arr) {
alvo var = arr.pop();
var MaxLowerBound = Matemática.max(arr[0], arr[2]);
var MinUpperBound = Math.min(arr[1], arr[3]);
função OverlappingRanges(arr) {
let count = 0;
para (deixe i = arr[0]; i <= arr[1]; i++) {
if (i >= arr[2] && i <= arr[3]) {
contagem++;
}
}
retorno (contagem >= arr[4]) ? verdadeiro : falso;
}
função OverlappingRanges(arr) {
var intervalo1 = [arr[0], arr[1]]; a, b)
var range2 = [arr[2], arr[3]]; c, d)
var mínimoOverlap = arr[4] - 1;
Superaumento
Faça com que a função Superincreasing (arr) pegue a matriz de números armazenados em arr e
determine se a matriz forma uma sequência supercrescente onde cada elemento na matriz é maior do que
a soma de todos os elementos anteriores. A matriz consistirá apenas de inteiros positivos. Por exemplo:
se arr é [1, 3, 6, 13, 54], então seu programa deve retornar a cadeia de caracteres "true" porque ela
forma uma sequência supercrescente. Se uma sequência supercrescente não for formada, seu programa
deverá retornar a sequência de caracteres "false"
Exemplos
Entrada: [1,2,3,4]
Saída: false
Entrada: [1,2,5,10]
Saída: true
função Superincreasing (arr) {
var maxInd = arr.comprimento - 1;
alvo do VAR;
soma var;
Distância Hamming
Exemplos
let count = 0;
for (let i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] !== strArr[1][i]) {
contagem++
}
}
contagem de retornos;
}
função HammingDistance(strArr) {
var palavra1 = strArr[0],
palavra2 = strArr[1],
len = palavra1.length,
contagem = 0;
função HammingDistance(strArr) {
var hammingDistância = 0;
for (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] !== strArr[1][i]) {
hammingDistância++;
}
}
retorno dificultadoDistância;
}
Área do retângulo
Solução de usuário mais bem avaliada
função RectangleArea(strArr) {
var obj = {};
obj.x1 = parseInt(strArr[0].match(/((-*d+)/)[1], 10);
obj.y1 = parseInt(strArr[0].match(/(-*d+))/)[1], 10);
função RectangleArea(strArr) {
deixe deltaX = 0;
deixe 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);
}
});
Bitwise Um
Faça com que a função BitwiseOne(strArr) pegue a matriz de cadeias de caracteres armazenadas em
strArr, que conterá apenas duas cadeias de caracteres de comprimento igual que representam números
binários, e retorne uma cadeia de caracteres binária final que executou a operação bit a bit OU em ambas
as cadeias de caracteres. Uma operação bit a bit OR coloca um 0 na nova cadeia de caracteres onde há
zeros em ambas as cadeias binárias, caso contrário, ela coloca um 1 nesse ponto. Por exemplo: se
strArr é ["1001", "0100"], então seu programa deve retornar a cadeia de caracteres "1101"
Exemplos
retornar newStr;
}
manter esta chamada de função aqui
BitwiseOne(linha de leitura());
função BitwiseOne(strArr) {
saída var = '';
for (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] === '1' || strArr[1][i] === '1') {
saída += '1';
} else {
saída += '0';
}
}
saída de retorno;
}
função BitwiseOne(strArr) {
Outros Produtos
Faça com que a função OtherProducts(arr) pegue a matriz de números armazenados em arr e
retorne uma nova lista dos produtos de todos os outros números na matriz para cada elemento. Por
exemplo: se arr é [1, 2, 3, 4, 5], então a nova matriz, onde cada local na nova matriz é o produto de
todos os outros elementos, é [120, 60, 40, 30, 24]. Para obter essa resposta foram realizados os seguintes
cálculos: [(2*3*4*5), (1*3*4*5), (1*2*4*5), (1*2*3*5), (1*2*3*4)]. Você deve gerar essa nova matriz
e, em seguida, retornar os números como uma cadeia de caracteres unida por um hífen: 120-60-40-30-24.
A matriz conterá no máximo 10 elementos e pelo menos 1 elemento somente de inteiros positivos.
Exemplos
Entrada: [1,4,3]
Saída: 12-3-4
Entrada: [3,1,2,6]
Saída: 12-36-18-6
função OtherProducts(arr) {
deixe holdArray = [];
retornar holdArray.join('-');
}
função OtherProducts(arr) {
função produto(arr) {
retorno arr.reduce((a,b) => a * b);
}
função OtherProducts(arr) {
produtos var = [];
para (var i = 0; i < arr.length; i++) {
var other = arr.slice(0, i).concat(arr.slice(i + 1));
products.push(produto(outro));
}
devolver produtos.join('-');
}
Faça com que a função WaveSorting(arr) pegue a matriz de inteiros positivos armazenados em arr
e retorne a string true se os números puderem ser organizados em um padrão de onda: a1 > a2 < a3 > a4
< a5 > ..., caso contrário, retorne a string false. Por exemplo, se arr é: [0, 1, 2, 4, 1, 4], então uma
possível ordenação de onda dos números é: [2, 0, 4, 1, 4, 1]. Então, para essa entrada, seu programa deve
retornar a cadeia de caracteres true. A matriz de entrada sempre conterá pelo menos 2 elementos. Mais
exemplos são dados abaixo como exemplos de casos de teste.
Exemplos
Entrada: [0, 1, 2, 4, 1, 1, 1]
Saída: false
Faça uma matriz de nossos resultados, para que possamos encontrar o máximo
deixe contarArr = [];
for (deixe a chave em countObj) {
countArr.push(countObj[chave]);
}
função WaveSorting(arr) {
newArr = [];
função WaveSorting(arr) {
contanto que possamos colocar algum outro número entre o mesmo número, ele
funciona
retorno maisFrequent(arr) < (arr.length / 2);
}
Correspondência de matriz
Faça com que a função ArrayMatching(strArr) leia a matriz de cadeias de caracteres armazenadas
em strArr que conterá apenas dois elementos, ambos representando uma matriz de inteiros positivos.
Por exemplo: se strArr for ["[1, 2, 5, 6]", "[5, 2, 8, 11]"], então ambos os elementos na entrada
representam duas matrizes inteiras, e seu objetivo para esse desafio é adicionar os elementos em locais
correspondentes de ambas as matrizes. Para a entrada de exemplo, seu programa deve fazer as seguintes
adições: [(1 + 5), (2 + 2), (5 + 8), (6 + 11)] que então é igual a [6, 4, 13, 17]. Seu programa deve
finalmente retornar essa matriz resultante em um formato de cadeia de caracteres com cada elemento
separado por um hífen: 6-4-13-17.
Se as duas matrizes não tiverem a mesma quantidade de elementos, basta acrescentar os elementos
restantes à nova matriz (exemplo mostrado abaixo). Ambas as matrizes estarão no formato: [e1, e2,
e3, ...] onde pelo menos um elemento existirá em cada matriz.
Exemplos
função ArrayMatching(strArr) {
strArr = strArr.map(val => val.replace(/[[]]/g, '')
.split(/s*,s*/).map(val1 => parseInt(val1, 10)));
função ArrayMatching(strArr) {
retornar resultados.join('-');
}
função ArrayMatching(strArr) {
arr1 = strArr[0].match(/\d+/g).map(Número);
arr2 = strArr[1].match(/\d+/g).map(Número);
Reversão binária
Faça com que a função BinaryReversal(str) pegue o parâmetro str que está sendo passado, que
será um inteiro positivo, pegue sua representação binária (acolchoada para o N * 8 bits mais próximo),
inverta essa cadeia de bits e, finalmente, retorne a nova cadeia invertida na forma decimal. Por exemplo:
se str é "47", então a versão binária deste inteiro é 101111 mas nós a preenchemos para ser 00101111.
Seu programa deve reverter essa cadeia binária que então se torna: 11110100 e, finalmente, retornar a
versão decimal dessa cadeia de caracteres, que é 244.
Exemplos
Entrada: "213"
Saída: 171
Entrada: "4567"
Saída: 60296
função BinaryReversal(str) {
função toBinary(str) {
resultado = Number(str).toString(2);
pad esquerda com 0s à esquerda para torná-lo um múltiplo de 8 dígitos...
if (resultado.comprimento % 8 !== 0)
retornar novo Array(8 - (result.length % 8)).fill(0).join('') + resultado;
senão retornar resultado;
}
função toDecimal(str) {
retorno parseInt(str, 2);
}
função BinaryReversal(str) {
retornar paraBinary(str);
var reverso = toBinary(str).split('').reverse().join('');
retornar aDecimal(reverso);
}
Entrada: [9, 9, 4, 2]
Saída: 1
Entrada: [10, 22, 9, 33, 21, 50, 41, 60, 22, 68, 90]
Saída: 7
função LongestIncreasingSequence(arr) {
deixe len = arr.length;
deixe arrHolder = [];
Remova todas as matrizes que não estão ascendentes (use o ascend() para
determinar)
arrHolder = arrHolder.filter(val => ascendente(val));
função ascend(inputArr) {
deixe arrlen = inputArr.length;
return inputArr.every((val, ind) => {
if (ind < arrlen - 1) {
return val < inputArr[ind + 1];
}
retorno verdadeiro;
});
}
https://stackoverflow.com/questions/2631726/how-to-determine-the-longest-increasing-
subsequence-using-dynamic-programming
Algoritmo usado a partir daqui
função LongestIncreasingSequence(arr) {
retorno lis.length;
função aumentando(arr) {
return arr.every(function(value, index, arr) {
var prev = (índice === 0) ? 0: arr[índice - 1];
retornar valor de < anterior;
});
}
função LongestIncreasingSequence(arr) {
var maior = 0;
Faça com que a função EvenPairs(str) pegue o parâmetro str que está sendo passado e determine
se um par de números pares adjacentes existe em qualquer lugar na cadeia de caracteres. Se existir um
par, retorne a cadeia de caracteres true, caso contrário, retorne false. Por exemplo: se str é
"f178svg3k19k46", então há dois números pares no final da string, "46", então seu programa deve
retornar a string true. Outro exemplo: se str é "7r5gg812", então o par é "812" (8 e 12), então seu
programa deve retornar a string true.
Exemplos
Entrada: "3gy41d216"
Saída: true
Entrada: "f09r27i8e67"
Saída: false
função EvenPairs(str) {
retornar regEx.test(str);
função EvenPairs(str) {
}
}
função EvenPairs(str) {
números var = str.match(/\d+/g);
for (var número de números) {
if (hasEvenPairs(number)) retornar true;
}
retornar false;
}
Próximo Palíndromo
Faça com que a função NextPalindrome(num) pegue o parâmetro num que está sendo passado e
retorne o próximo maior número palindrômico. A entrada pode ser qualquer inteiro positivo. Por
exemplo: se num é 24, então seu programa deve retornar 33 porque esse é o próximo maior número que
é um palíndromo.
Exemplos
Entrada: 2
Saída: 3
Entrada: 180
Saída: 181
função NextPalindrome(num) {
enquanto (verdadeiro) {
numString = count.toString();
revString = numString.split('')
.reverso()
.join('');
if (revString === numString) retorna parseInt(numString, 10);
contagem++;
}
}
função NextPalindrome(num) {
função isPalindrome(str) {
para (let i = 0, max = Math.floor(str.length/2); i < max; i++) {
if (str[i] !== str[str.length-1-i]) {
retornar false;
}
}
retorno verdadeiro;
}
}
função isPalindrome(num) {
var numStr = num.toString();
return numStr.split('').reverse().join('') === numStr;
}
função NextPalindrome(num) {
var nextNum = num + 1;
enquanto (!isPalindrome(nextNum)) {
próximoNum++;
}
retornar nextNum;
}
Faça com que a função LargestPair(num) pegue o parâmetro num que está sendo passado e
determine o maior número de dois dígitos dentro do número inteiro. Por exemplo: se num é 4759472
então seu programa deve retornar 94 porque esse é o maior número de dois dígitos. A entrada sempre
conterá pelo menos dois dígitos positivos.
Exemplos
Entrada: 453857
Saída: 85
Entrada: 363223311
Saída: 63
função LargestPair(num) {
função LargestPair(num) {
núm = num.toString();
Seja maiorNum = 0;
para (deixe i = 1; i < num.length; i++) {
deixe testNum = parseInt(num[i-1] + num[i]);
if (testNum > largestNum) {
largestNum = testNum;
}
}
retornar maiorNum;
}
manter esta chamada de função aqui
LargestPair(linha de leitura());
função LargestPair(num) {
var máx = 0;
var numStr = num.toString();
Faça com que a função NonrepeatingCharacter(str) pegue o parâmetro str que está sendo
passado, que conterá apenas caracteres alfabéticos e espaços, e retorne o primeiro caractere não
repetitivo. Por exemplo: se str é "agettkgaeee", então seu programa deve retornar k. A cadeia de
caracteres sempre conterá pelo menos um caractere e sempre haverá pelo menos um caractere não
repetitivo.
Exemplos
Entrada: "abcdef"
Saída: a
função NonrepeatingCharacter(str) {
função NonrepeatingCharacter(str) {
str = str.replace(/\s+/g, '');
var contagens = {};
Faça com que a função TwoSum(arr) pegue a matriz de inteiros armazenados em arr e determine se
quaisquer dois números (excluindo o primeiro elemento) na matriz podem somar ao primeiro elemento
na matriz. Por exemplo: se arr é [7, 3, 5, 2, -4, 8, 11], então existem na verdade dois pares que somam
o número 7: [5, 2] e [-4, 11]. Seu programa deve retornar todos os pares, com os números separados por
uma vírgula, na ordem em que o primeiro número aparece na matriz. Os pares devem ser separados por
um espaço. Então, para o exemplo acima, seu programa retornaria: 5,2 -4,11
Se não houver dois números que somem o primeiro elemento na matriz, retorne -1
Exemplos
função TwoSum(arr) {
arr.forEach(item => {
const elogio = resposta - item;
if (history.has(elogio)) {
matches.push([item, elogio]);
} else {
history.add(item);
}
});
função TwoSum(arr) {
pares var = [];
var soma = arr[0];
var repouso = arr.fatia(1);
pares = findPairs(repouso, soma);
Dois Bitwise
Faça com que a função BitwiseTwo(strArr) pegue a matriz de cadeias de caracteres armazenadas em
strArr, que conterá apenas duas cadeias de caracteres de comprimento igual que representam números
binários, e retorne uma cadeia de caracteres binária final que executou a operação bit a bit AND em
ambas as cadeias de caracteres. Uma operação bit a bit AND coloca um 1 na nova cadeia de caracteres
onde há um 1 em ambos os locais nas cadeias binárias, caso contrário, coloca um 0 nesse ponto. Por
exemplo: se strArr é ["10111", "01101"], então seu programa deve retornar a cadeia de caracteres
"00101"
Exemplos
função BitwiseTwo(strArr) {
função BitwiseTwo(strArr) {
resultado var = '';
for (var i = 0; i < strArr[0].length; i++) {
if (strArr[0][i] === '1' && strArr[1][i] === '1') {
resultado += '1';
} else {
resultado += '0';
}
}
resultado de retorno;
}
Faça com que a função PowerSetCount(arr) pegue a matriz de inteiros armazenados em arr e
retorne o comprimento do conjunto de energia (o número de todos os conjuntos possíveis) que podem
ser gerados. Por exemplo: se arr é [1, 2, 3], então os seguintes conjuntos formam o conjunto de
potência:
Você pode ver acima de todos os conjuntos possíveis, juntamente com o conjunto vazio, são gerados.
Portanto, para essa entrada, seu programa deve retornar 8.
Exemplos
Entrada: [1, 2, 3, 4]
Saída: 16
Entrada: [5, 6]
Saída: 4
função PowerSetCount(arr) {
deixe len = arr.length;
retorno Math.pow(2, len);
}
função PowerSetCount(arr) {
retorno Math.pow(2, arr.length);
}
função PowerSetCount(arr) {
retorno Math.pow(2, arr.length);
}
Dígitos do produto
Faça com que a função ProductDigits(num) pegue o parâmetro num que está sendo passado, que
será um inteiro positivo, e determine a menor quantidade de dígitos que você precisa multiplicar para
produzi-lo. Por exemplo: se num é 24, então você pode multiplicar 8 por 3 o que produz 24, então seu
programa deve retornar 2 porque há um total de apenas 2 dígitos que são necessários. Outro exemplo: se
num é 90, você pode multiplicar 10 * 9, então neste caso seu programa deve produzir 3 porque você não
pode chegar a 90 sem usar um total de 3 dígitos em sua multiplicação.
Exemplos
Entrada: 6
Saída: 2
Entrada: 23
Saída: 3
função ProductDigits(num) {
deixe pivotar = Math.sqrt(num);
let value = num.toString().length + 1;
para (deixe i = 1; i <= pivô; i++) {
if (num % i === 0) {
deixe maxFactor = i;
maxCompFactor = núm / maxFactor;
maxFactorString = maxFactor.toString();
maxCompFactorString = maxCompFactor.toString();
deixe totalLength = maxFactorString.length +
maxCompFactorString.length;
if (totalLength < valor) {
valor = totalLength;
}
}
}
valor de retorno;
}
função ProductDigits(num) {
deixe pf = primeFactors(num);
if (pf.length === 1) {
retornar pf[0].toString().length + 1;
}
função primeFactors(num) {
se (num === 1) retornar 1;
Seja pf = [];
função getDivisors(num) {
divisores var = [1];
para (var i = 2; i <= num / 2; i++) {
if (num % i === 0) {
divisores.push(i);
}
}
divisores.push(num);
divisores de retorno;
}
função ProductDigits(num) {
var divisores = getDivisors(num);
pares var = [];
Criador de Palíndromo
Faça com que a função PalindromeCreator(str) pegue o parâmetro str que está sendo passado e
determine se é possível criar uma cadeia de caracteres palindrômica de comprimento mínimo de 3
caracteres removendo 1 ou 2 caracteres. Por exemplo: se str é "abjchba", então você pode remover os
caracteres jc para produzir "abhba", que é um palíndromo. Para este exemplo, seu programa deve
retornar os dois caracteres que foram removidos sem delimitador e na ordem em que aparecem na cadeia
de caracteres, então jc. Se 1 ou 2 caracteres não puderem ser removidos para produzir um palíndromo,
retorne a cadeia de caracteres não possível. Se a string de entrada já for um palíndromo, seu programa
deverá retornar a cadeia de caracteres palíndromo.
A entrada conterá apenas caracteres alfabéticos minúsculos. Seu programa deve sempre tentar criar a
subcadeia palindrômica mais longa removendo 1 ou 2 caracteres (veja o segundo caso de teste de
exemplo como exemplo). Os 2 caracteres removidos não precisam estar adjacentes na cadeia de
caracteres.
Exemplos
Entrada: "mmop"
Saída: não é possível
Entrada: "kjjjhjjj"
Saída: k
função PalindromeCreator(str) {
let len = str.length;
teste para ver se já é um Palíndromo
if (isPalindrome(str)) {
retorno 'palíndromo';
}
para (deixe i = 0; i < len; i++) {
let testArray = str.split('');
deixe res = testArray.splice(i, 1);
let newString = testArray.join('');
if (isPalindrome(newString)) {
console.log('um');
retornar res.join('');
}
}
para (deixe i = 0; i < len; i++) {
deixe res = [];
para (deixe 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)) {
retornar res.join('');
}
}
}
retorno 'não possível';
}
----------------Ajudantes---------------------------
função isPalindrome(str) {
deixe newStr = str.split('').reverse().join('');
if (newStr === str) {
retorno verdadeiro;
}
retornar false;
}
função PalindromeCreator(str) {
if (isPalindrome(str)) {
retorno 'palíndromo';
}
Criar combos
deixe combos = [];
for (let i = 0, max = Math.pow(2, str.length); i < max; i++) {
deixe combo = i.toString(2);
if (palindromeCombos.length === 0) {
retorno 'não possível';
}
Ordenar assim que as duas primeiras letras encontradas sejam devolvidas primeiro
para quando
há vários valores
palindromeCombos.sort(function(a,b){
retorno parseInt(a,2) < parseInt(b,2);
});
resultado de retorno;
função isPalindrome(str) {
return (str === str.split('').reverse().join('')) ? verdadeiro : falso;
}
função isPalindrome(str) {
return str === str.split('').reverse().join('');
}
função PalindromeCreator(str) {
se (isPalindrome(str)) retornar 'palíndromo';
O objetivo do seu programa é retornar o equivalente decimal do algarismo romano dado. Por exemplo: se
str é "XXIV" seu programa deve retornar 24
Exemplos
Entrada: "IV"
Saída: 4
Entrada: "XLVI"
Saída: 46
função BasicRomanNumerals(str) {
deixe letterObj = {
I: 1,
V: 5,
X: 10,
L: 50,
C: 100,
D: 500,
Telefone: 1000
}
deixe res = 0;
let len = str.length;
para (deixe i = 0; i < len; i++) {
if (!letterObj[str[i + 1]] || letterObj[str[i]] >= letterObj[str[i +
1]]) {
res += letraObj[str[i]];
} else {
res += (letterObj[str[i + 1]] - letterObj[str[i]]);
i++;
}
}
retorno res;
}
/*
Símbolo Eu V X L C D M
Valor1 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;
deixe a soma = 0;
switch(símbolo) {
caso 'I':
if (nextSymbol === 'V') {
soma += ROMAN_V - ROMAN_I;
i++;
} else if (nextSymbol === 'X') {
soma += ROMAN_X - ROMAN_I;
i++;
} else {
soma += ROMAN_I;
}
quebrar;
caso «V»:
soma += ROMAN_V;
quebrar;
caso «X»:
if (nextSymbol === 'L') {
soma += ROMAN_L - ROMAN_X;
i++;
} else if (nextSymbol === 'C') {
soma += ROMAN_C - ROMAN_X;
i++;
} else {
soma += ROMAN_X;
}
quebrar;
processo «L»:
soma += ROMAN_L;
quebrar;
processo «C»:
if (nextSymbol === 'D') {
soma += ROMAN_D - ROMAN_C;
i++;
} else if (nextSymbol === 'M') {
soma += ROMAN_M - ROMAN_C;
i++;
} else {
soma += ROMAN_C;
}
quebrar;
processo «D»:
soma += ROMAN_D;
quebrar;
processo «M»:
soma += ROMAN_M;
quebrar;
inadimplência:
Carvão ou espaço ilegal
quebrar;
}
}
soma de devolução;
}
função BasicRomanNumerals(str) {
var decimais = [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'];
saída var = 0;
Distribuição de Alimentos
Por exemplo: se arr é [5, 3, 1, 2, 1], isso significa que você tem 5 sanduíches para distribuir. Você pode
distribuí-los na seguinte ordem para as pessoas: 2, 0, 1, 0. Dando esses sanduíches ao povo seus níveis
de fome agora se tornam: [1, 1, 1, 1]. A diferença entre cada par de pessoas agora é 0, o total também é
0, então seu programa deve retornar 0. Nota: Você pode não ter que dar todos, ou mesmo nenhum, de
seus sanduíches para produzir uma diferença minimizada.
Outro exemplo: se arr é [4, 5, 2, 3, 1, 0], então você pode distribuir os sanduíches na seguinte ordem:
[3, 0, 1, 0, 0], o que torna todos os níveis de fome os seguintes: [2, 2, 2, 1, 0]. As diferenças entre cada
par de pessoas agora é: 0, 0, 1, 1 e assim seu programa deve retornar a diferença final minimizada de 2.
Exemplos
Entrada: [5, 2, 3, 4, 5]
Saída: 1
Entrada: [3, 2, 1, 0, 4, 1, 0]
Saída: 4
função FoodDistribution(arr) {
let treats = arr.shift();
deixe myArray = arr.slice(0);
deixe arrMin = arr.sort((val1, val2) => val2 - val1).pop()
deixe len = myArray.length;
let count = 0;
for (let i = 0, len = valQuantArr.length; i < len - 1; i++) {
count += Math.abs(valQuantArr[i].value - valQuantArr[i + 1].value);
}
contagem de retornos;
}
-----------------Ajudantes-----------------------
flattenMid = (arr, trata, q) => {
índice de let = 0;
enquanto (trata > 0 && índice > -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 (índice >= 0) {
arr[índice].valor --;
trata -= q;
}
}
retorno [objetivar(arr), trata];
}
função FoodDistribution(arr) {
Muitos sanduíches
if (comboSum > sanduíches) {
continuar;
}
Também pode adicionar um cheque aqui para remover sanduíches que colocariam
fome < 0
função getHungerDifference(arr){
deixe diff = 0;
for (deixe i = 1; i < arr.length; i++) {
diff += Math.abs(arr[i] - arr[i-1]);
}
diff de retorno;
}
função FoodDistribution(arr) {
var N = arr[0];
var fomeNíveis = arr.slice(1);
enquanto (N > 0) {
var maxDiferença = 0;
o índice a ser alimentado com um sanduíche em seguida
var maisNecessário = -1;
para (var i = 0; i < hungerLevels.length - 1; i++) {
var diferença = Math.abs(hungerLevels[i + 1] - hungerLevels[i]);
if (diferença > maxDifference) {
maxDifference = diferença;
mostNeeded = (fomeNíveis[i + 1] > fomeNíveis[i]) ? (i + 1) : i;
}
}
Agora sabemos quem precisa tanto do sanduíche. doe-o
if (mostNeeded === -1) {
as diferenças adjacentes são todas 0's, então pare de dar os sanduíches
fora
retorno 0;
} else {
fomeNíveis[maisNecessário] -= 1;
N--;
}
}
calcular a soma das diferenças adjacentes
var somaDeDiferenças = 0;
para (var i = 0; i < hungerLevels.length - 1; i++) {
sumOfDifferences += Math.abs(fomeNíveis[i + 1] - fomeNíveis[i]);
}
retorno somaDeDiferenças;
}
Três Soma
Faça com que a função ThreeSum(arr) pegue a matriz de inteiros armazenados em arr e determine se
três números distintos (excluindo o primeiro elemento) na matriz podem somar ao primeiro elemento na
matriz. Por exemplo: se arr é [8, 2, 1, 4, 10, 5, -1, -1], então existem na verdade três conjuntos de
trigêmeos que somam o número 8: [2, 1, 5], [4, 5, -1] e [10, -1, -1]. Seu programa deve retornar a cadeia
de caracteres true se 3 elementos distintos somam ao primeiro elemento, caso contrário, seu programa
deve retornar a cadeia de caracteres false. A matriz de entrada sempre conterá pelo menos 4 elementos.
Exemplos
função ThreeSum(arr) {
let resposta = parseInt(arr.shift());
Gerar combos
deixe combos = [];
para (deixe i = 0, max = Math.pow(2, arr.length); i < max; i++) {
deixe combo = i.toString(2);
if (digitsSoma !== 3) {
continuar;
}
Dígitos do teclado
enquanto (combo.length < arr.length) {
combo = '0' + combo;
}
combos.push(combo);
}
Combos de teste
deixe goodCombos = [];
combos.forEach(function(combo){
deixe a soma = 0;
para (deixe i = 0; i < combo.length; i++) {
if (combo[i] === '1') {
soma += parseInt(arr[i]);
}
}
if (soma === resposta) {
goodCombos.push(combo);
}
});
função ThreeSum(arr) {
var soma = arr[0];
números var = arr.slice(1);
Caminho correto
Faça com que a função CorrectPath(str) leia o parâmetro str que está sendo passado, que
representará os movimentos feitos em uma grade 5x5 de células a partir da posição superior esquerda. Os
caracteres na string de entrada serão inteiramente compostos por: r, l, u, d, ?. Cada um dos caracteres
representa a direção a ser tomada dentro da grade, por exemplo: r = direita, l = esquerda, u = para cima,
d = para baixo. Seu objetivo é determinar quais caracteres os pontos de interrogação devem ser para que
um caminho a ser criado vá do canto superior esquerdo da grade até o canto inferior direito sem tocar
nas células da grade.
Por exemplo: se str é "r?d?drdd", então seu programa deve produzir a sequência de caracteres final
correta que permitirá que um caminho seja formado a partir do canto superior esquerdo de uma grade
5x5 para o canto inferior direito. Para essa entrada, seu programa deve, portanto, retornar a cadeia de
caracteres rrdrdrdd. Haverá apenas um caminho correto e sempre haverá pelo menos um ponto de
interrogação dentro da cadeia de caracteres de entrada.
Exemplos
função CorrectPath(str) {
Tente caminhos
combos.forEach(function(combo){
deixe comboArray = combo.split('');
deixe tryPath = '';
para (deixe i = 0; i < str.length; i++) {
if (str[i] === '?') {
let direction = comboArray.shift();
Interruptor (direção) {
Processo '0': // Direito
tryPath += 'r';
quebrar;
Processo «1»: // para baixo
tryPath += 'd';
quebrar;
Processo «2»: // Esquerda
tryPath += 'l';
quebrar;
Processo «3»: // acima
tryPath += 'u';
quebrar;
inadimplência:
Nunca deveria acontecer
quebrar;
}
} else {
tryPath += str[i];
}
}
if (pathGood(tryPath)) {
goodPaths.push(tryPath);
}
});
goodPaths de acordo com a especificação só deve ser === 1, mas este código pode
lidar com casos mais verdadeiros
retornar goodPaths[0];
deixe grade = [
[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]
]; Gol 4,4
}
if (startX < 0 || startX > 4 || startY < 0 || startY > 4 || grid[startY]
[startX] === 1) {
já viajou ou fora dos limites
retornar false;
}
grid[startY][startX] = 1;
}
}
}
função findMissingChars(str) {
Primeiro, gerar todos os casos possíveis: substituindo ? com instruções
permutações var = [''];
para (var i = 0; i < str.length; i++) {
if (str[i] === '?') {
var newPermutations = [];
permutations.forEach(function(permutation) {
newPermutations.push(permutação + 'u');
newPermutations.push(permutação + 'd');
newPermutations.push(permutação + 'l');
newPermutations.push(permutação + 'r');
});
permutações = novasPermutações;
} else {
permutações = permutações.map(permutação => permutação + str[i]);
}
}
função CorrectPath(str) {
var validPaths = findMissingChars(str);
Balanceamento de Escala
Haverá apenas uma solução única e a lista de pesos disponíveis não estará vazia. Também é possível
adicionar dois pesos a apenas um lado da balança para equilibrá-la. Se não for possível equilibrar a
escala, seu programa deve retornar a cadeia de caracteres não possível.
Exemplos
função ScaleBalancing(strArr) {
/*
Gerar todas as combinações possíveis de pesos E permutações de
esquerda/direita - 3^n tempo
0 - Peso não utilizado
1 - Peso do lado esquerdo
2 - Peso do lado direito
*/
deixe combos = [];
para (deixe i = 0, max = Math.pow(3, pesos.comprimento); i < max; i++) {
deixe combo = i.toString(3);
deixe numWeights = combo.split('').reduce((a,v) => a + (parseInt(v) > 0 | 0),
0);
Almofada
enquanto (combo.length < weights.length) {
combo = '0' + combo;
}
combos.push(combo);
}
console.log(combos);
Combos de teste
deixe goodCombos = [];
combos.forEach(function(combo){
deixe à esquerda = objetos[0];
deixe direito = objetos[1];
if (goodCombos.length === 0) {
retorno 'não possível';
}
Ordenar primeiro por número de pesos físicos utilizados e, em seguida, por peso
total se existirem vários conjuntos
goodCombos.sort(função(a, b){
deixe aCount = a.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
deixe bCount = b.split('').reduce((ac,v) => ac + (parseInt(v) > 0 | 0), 0);
função ScaleBalancing(strArr) {
pesos var = strArr[1].match(/\d+/g).map(Número);
var weightsOnScale = strArr[0].match(/\d+/g).map(Número);
var leftWeight = pesosOnScale[0];
var rightWeight = pesosOnScale[1];
sem solução
retorno 'não possível';
}
Faça com que a função ThreeNumbers(str) pegue o parâmetro str que está sendo passado e
determine se exatamente três inteiros únicos de um dígito ocorrem dentro de cada palavra na cadeia de
caracteres. Os inteiros podem aparecer em qualquer lugar da palavra, mas não podem ser todos
adjacentes uns aos outros. Se cada palavra contiver exatamente 3 inteiros exclusivos em algum lugar
dentro dela, retorne a cadeia de caracteres true, caso contrário, retorne a string false. Por exemplo: se
str é "2hell6o3 wor6l7d2", então seu programa deve retornar "true", mas se a string é "hell268o
w6or2l4d", então seu programa deve retornar "false" porque todos os inteiros são adjacentes uns aos
outros na primeira palavra.
Exemplos
words.forEach(function(word){
deixe os números = 0;
deixe trêsAdjacente = falso;
deixe usedDigits = '';
para (deixe i = 0; i < word.length; i++) {
Verificar se há dígitos usados
if (usedDigits.includes(word[i])) {
usado! falhar
resultado = falso;
}
if (DIGITS.includes(word[i])) {
números++;
usedDigits += palavra[i];
if (números === 3) {
if (DIGITS.includes(word[i-1]) && DIGITS.includes(word[i-2])) {
threeAdjacent = verdadeiro;
}
}
}
Verifique se há 3 dígitos anteriores adjacentes
}
} else {
resultado = falso;
}
});
resultado de retorno;
}
função ThreeNumbers(str) {
var palavras = str.split(' ');
var numbersOfWords = words.map(word => word.match(/\d+/g));
retorno verdadeiro;
}
função ThreeNumbers(str) {
Pesquisa do alfabeto
Faça com que a função AlphabetSearching(str) pegue o parâmetro str que está sendo passado e
retorne a cadeia de caracteres true se cada letra do alfabeto inglês existir na cadeia de caracteres, caso
contrário, retorne a string false. Por exemplo: se str é "zacxyjbbkfgtbhdaielqrm45pnsowtuv", então seu
programa deve retornar a cadeia de caracteres true porque todos os caracteres do alfabeto existem nessa
cadeia de caracteres, mesmo que alguns caracteres apareçam mais de uma vez.
Exemplos
Entrada: "abcdefghijklmnopqrstuvwxyyyy"
Saída: false
Entrada: "abc123456kmo"
Saída: false
função AlphabetSearching(str) {
str = str.toLowerCase();
para (deixe i = 97; i < 97 + 26; i++) {
deixe char = String.fromCharCode(i);
if (!str.includes(char)) {
retornar false;
}
}
retorno verdadeiro;
}
função AlphabetSearching(str) {
função isAlpha(char) {
retornar /[A-Za-z]/.test(char);
}
função AlphabetSearching(str) {
var foundLetters = [];
para (var i = 0; i < str.length; i++) {
if ( isAlpha(str[i]) && (foundLetters.indexOf(str[i]) === -1) ) {
foundLetters.push(str[i]);
}
}
return foundLetters.length === 26;
}
Faça com que a função TimeDifference(strArr) leia a matriz de strings armazenadas em strArr,
que será uma lista não ordenada de tempos em um formato de doze horas assim: HH:MM(am/pm). Seu
objetivo é determinar a menor diferença em minutos entre dois dos tempos da lista. Por exemplo: se
strArr é ["2:10pm", "1:30pm", "10:30am", "4:42pm"] então seu programa deve retornar 40 porque a
menor diferença é entre 13:30 e 14:10 com uma diferença de 40 minutos. A matriz de entrada sempre
conterá pelo menos dois elementos e todos os elementos estarão no formato correto e exclusivos.
Exemplos
função TimeDifference(strArr) {
os tempos manterão nossas diferenças de tempo
deixe os tempos = [];
deixe newStrArr = strArr.map (val => {
let matches = val.match(/^(\d+):(\d+)([ap]m)$/);
deixe horas = parseInt(matches[1], 10);
deixe minutos = parseInt(partidas[2], 10);
deixe metade = fósforos[3];
if (metade === 'am' && horas === 12) {
horas = 0;
}
if (metade === 'pm' && horas !== 12) {
horas += 12;
}
retorno (horas * 60 + minutos);
})
.sort((a, b) => { return a - b});
complicado - segundo exemplo mostra que temos que considerar o primeiro tempo
tanto no dia 0 quanto no dia 1
newStrArr.push(novoStrArr[0] + 24 * 60);
retorno menorDiferença;
}
função TimeDifference(strArr) {
let array = strArr.map(value => {
let corresponde = value.match(/^(\d+):(\d+)([ap]m)$/);
deixe h = parseInt(matches[1], 10);
deixe m = parseInt(matches[2], 10);
if (matches[3] === 'am' && h === 12) {
h = 0;
} else if (matches[3] === 'pm' && h !== 12) {
h += 12;
}
retorno (60 * h + m);
}).sort(função(a, b) {
retornar a - b;
});
array.push(matriz[0] + 24 * 60);
deixe os tempos = [];
for (let i = 0; i < array.length - 1; i++) {
times.push(matriz[i+1] - matriz[i]);
}
retornar Math.min(... vezes);
}
manter esta chamada de função aqui
TimeDifference(linha de leitura());
Linha Triângulo
Faça com que a função TriangleRow(num) tome num que será um inteiro positivo representando
alguma linha do triângulo de Pascal. O triângulo de Pascal começa com um [1] na 0ª linha do triângulo.
Então a primeira linha é [1, 1] e a segunda linha é [1, 2, 1]. A próxima linha começa com 1 e termina
com 1, e o interior da linha é determinado pela adição dos elementos k-1 e k-ésimo da linha anterior. A
próxima linha no triângulo seria então [1, 3, 3, 1], e assim por diante. A entrada será algum inteiro
positivo e seu objetivo é retornar a soma dessa linha. Por exemplo: se num é 4, então seu programa deve
retornar a soma de 1 + 4 + 6 + 4 + 1 que é 16.
Exemplos
Entrada: 1
Saída: 2
Entrada: 2
Saída: 4
função TriangleRow(num) {
retornar Math.pow(2, num);
}
console.log(TriangleRow(5));
função TriangleRow(num) {
}
manter esta chamada de função aqui
TriangleRow(linha de leitura());
função TriangleRow(num) {
A resposta fácil - sempre soma até N^2
retorno num * num;
Quadrado de Vogais
Faça com que a função VowelSquare(strArr) pegue o parâmetro strArr que está sendo passado,
que será uma matriz 2D de algum tamanho arbitrário preenchida com letras do alfabeto, e determine se
um quadrado 2x2 composto inteiramente de vogais existe na matriz. Por exemplo: strArr é ["abcd",
"eikr", "oufj"] então esta matriz se parece com o seguinte:
ab c d
ei k r
o u f j
Dentro desta matriz há um quadrado 2x2 de vogais começando na segunda linha e primeira coluna, a
saber, ei, ou. Se um quadrado 2x2 de vogais for encontrado, seu programa deve retornar a posição
superior esquerda (linha-coluna) do quadrado, portanto, para este exemplo, seu programa deve retornar
1-0. Se não existir um quadrado 2x2 de vogais, retorne a cadeia de caracteres não encontrada. Se
houver vários quadrados de vogais, retorne aquele que estiver na posição mais à esquerda em toda a
matriz. A matriz de entrada será pelo menos de tamanho 2x2.
Exemplos
função VowelSquare(strArr) {
função isVogal(letra) {
const VOGAIS = 'aeiou';
retornar VOGAIS.includes(letra);
}
}
função VowelSquare(strArr) {
matriz var = strArr.map(row => row.split(''));
Entrada: [1, 0, 0, 0, 2, 2, 2]
Saída: 4
Entrada: [2, 0, 0, 0, 2, 2, 1, 0]
Saída: 1
função ClosestEnemy(arr) {
se (!arr.includes(2)) {
retorno 0;
}
loc1 = arr.findIndex(val => {
retorno val === 1;
});
função ClosestEnemy(arr) {
Direito de pesquisa
deixe deltaRight = indefinido;
for (let i = hero+1; i < arr.length; i++) {
if (arr[i] === 2) { // Inimigo encontrado
deltaDireito = i - herói;
quebrar;
}
}
Pesquisar à esquerda
deixe deltaLeft = indefinido;
para (deixe i = herói-1; i >= 0; i--) {
if (arr[i] === 2) { // Inimigo encontrado
deltaLeft = herói - i;
quebrar;
}
}
if (deltaLeft === undefined && deltaRight === undefined) {
retorno 0;
}
função ClosestEnemy(arr) {
índice de 1
var me = arr.indexOf(1);
var minimumDistance = arr.comprimento;
Faça com que a função ClosestEnemyII(strArr) leia a matriz de números armazenados em strArr
que será uma matriz 2D que contém apenas os inteiros 1, 0 ou 2. Então, a partir da posição na matriz
onde um 1 está, retorne o número de espaços para a esquerda, direita, para baixo ou para cima, você deve
se mover para alcançar um inimigo que é representado por um 2. Você é capaz de envolver um lado da
matriz para o outro também. Por exemplo: se strArr é ["0000", "1000", "0002", "0002"] então isso se
parece com o seguinte:
0000010000002000
2
Para esta entrada seu programa deve retornar 2 porque o inimigo mais próximo (2) está a 2 espaços de
distância do 1, movendo-se para a esquerda para envolver para o outro lado e, em seguida, movendo-se
para a esquerda para envolver para o outro lado e, em seguida, movendo-se para baixo uma vez. A
matriz conterá qualquer número de 0 e 2, mas apenas um único 1. Ele pode não conter nenhum 2
também, onde nesse caso seu programa deve retornar um 0.
Exemplos
função ClosestEnemyII(strArr) {
Etapa um - retornar 0 se não houver 2 na matriz
deixe twosies = strArr.filter(val => {
retorno val.includes("2");
});
se (!twosies.length) {
retorno 0;
}
passo dois - obter as coordenadas do 1 (targetX, targetY)
targetY = strArr.findIndex(val => {
retorno val.includes('1');
});
targetX = strArr[targetY].search(/1/);
Passo três Encontre o menor caminho para um 2
deixe res = strArr.length * strArr[0].length;
}
--------------------Ajudantes----------------------
apesar do nome, use para distância de coluna e linha
função rowDist(y, x, len) {
retornar Math.min(Math.abs(x - y), Math.abs(y - x + len));
}
função ClosestEnemyII(strArr) {
Encontre o herói
deixe heroY = -1;
deixe heroX = -1;
for (let i = 0; i < strArr.length; i++) {
deixe resultado = strArr[i].indexOf(1);
if (resultado > -1) {
heroX = resultado;
heroY = i;
}
}
Verifique se há inimigos
deixe inimigos = [];
for (let i = 0; i < strArr.length; i++) {
deixe resultado = strArr[i].indexOf(2);
if (resultado > -1) {
inimigos.push([i,resultado]);
}
}
if (enemies.length === 0) {
retorno 0;
}
console.log(inimigos);
Localizar a distância entre dois elementos com determinados índices [linha, coluna]
função 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;
}
função ClosestEnemyII(strArr) {
var matrix = strArr.map(line => line.split('').map(Número));
var minDistance = matriz.comprimento * 2;
Localização de Me: 1
var meÍndices;
Locais dos inimigos: 2's
var inimigosÍndices = [];
identificar os locais de 1 e 2
for (var row = 0; row < matrix.length; row++) {
for (var column = 0; column < matrix[0].length; column++) {
if (matriz[linha][coluna] === 1) {
meIndices = [linha, coluna];
} else if (matrix[row][column] === 2) {
enemiesIndices.push([linha, coluna]);
}
}
}
Faça com que a função NumberStream(str) pegue o parâmetro str que está sendo passado, que
conterá os números de 2 a 9, e determine se há um fluxo consecutivo de dígitos de pelo menos N
comprimento onde N é o valor real do dígito. Em caso afirmativo, retorne a cadeia de caracteres true,
caso contrário, retorne a cadeia de caracteres false. Por exemplo: se str é "6539923335", então seu
programa deve retornar a cadeia de caracteres true porque há um fluxo consecutivo de 3 de
comprimento 3. A cadeia de caracteres de entrada sempre conterá pelo menos um dígito.
Exemplos
Entrada: "5556293383563665"
Saída: false
Entrada: "5788888888882339999"
Saída: true
função NumberStream(str) {
para (seja i = 2; i < 10; i++) {
deixe iChar = i.toString();
deixe agulha = iChar.repeat(i);
if (str.indexOf(agulha) !== -1) {
retorno verdadeiro;
}
}
código vai aqui
retornar false;
função NumberStream(str) {
função NumberStream(str) {
gerar padrões primeiro
padrões var = [];
para (var i = 1; i < 10; i++) {
patterns.push(String(i).repeat(i));
}
Quatro maiores
Faça com que a função LargestFour(arr) pegue a matriz de inteiros armazenados em arr, e
encontre os quatro maiores elementos e retorne sua soma. Por exemplo: se arr é [4, 5, -2, 3, 1, 2, 6, 6],
então os quatro maiores elementos nessa matriz são 6, 6, 4 e 5 e a soma total desses números é 21, então
seu programa deve retornar 21. Se houver menos de quatro números na matriz, seu programa deverá
retornar a soma de todos os números na matriz.
Exemplos
Entrada: [0, 0, 2, 3, 7, 1]
Saída: 13
função LargestFour(arr) {
deixe newArr = arr.sort((val1, val2) => {
retorno val2 - val1;
})
.splice(0, 4);
return newArr.reduce((val1, val2) => {
retornar val1 + val2;
}, 0);
}
função LargestFour(arr) {
função LargestFour(arr) {
return arr.sort((a, b) => a < b).slice(0, 4).reduce((soma, v) => soma + v, 0);
}
Personagens distintos
Faça com que a função DistinctCharacters(str) pegue o parâmetro str que está sendo passado e
determine se ele contém pelo menos 10 caracteres distintos, em caso afirmativo, seu programa deve
retornar a cadeia de caracteres true, caso contrário, ele deve retornar a string false. Por exemplo: se str
é "abc123kkmmmm?" então seu programa deve retornar a string false porque essa string contém apenas
9 caracteres distintos: a, b, c, 1, 2, 3, k, m, ? soma 9.
Exemplos
Entrada: "12334bbmma:=6"
Saída: true
Entrada: "eeeemmmmmmmmm1000"
Saída: false
função DistinctCharacters(str) {
let mySet = novo Set(str.split(''));
retornar mySet.size >= 10 ? verdadeiro : falso
}
função DistinctCharacters(str) {
deixe charCodes = [];
para (deixe i = 0; i < str.length; i++) {
if (!charCodes.includes(str.charCodeAt(i))) {
charCodes.push(str.charCodeAt(i));
}
}
return (charCodes.length >= 10) ? verdadeiro : falso;
função DistinctCharacters(str) {
var distintivos = {};
Pontos de interrogação
Faça com que a função QuestionsMarks(str) pegue o parâmetro str string, que conterá números
de um dígito, letras e pontos de interrogação, e verifique se há exatamente 3 pontos de interrogação entre
cada par de dois números que somam 10. Se assim for, então seu programa deve retornar a cadeia de
caracteres true, caso contrário, ele deve retornar a cadeia de caracteres false. Se não houver dois
números que somam 10 na cadeia de caracteres, seu programa também deve retornar falso.
Por exemplo: se str é "arrb6??? 4xxbl5??? eee5" então seu programa deve retornar true porque há
exatamente 3 pontos de interrogação entre 6 e 4, e 3 pontos de interrogação entre 5 e 5 no final da string.
Exemplos
Entrada: "aa6?9"
Saída: false
Estojo Camel
Faça com que a função CamelCase(str) pegue o parâmetro str que está sendo passado e o retorne no
formato de maiúsculas e minúsculas onde a primeira letra de cada palavra é maiúscula (excluindo a
primeira letra). A cadeia de caracteres conterá apenas letras e alguma combinação de caracteres de
pontuação delimitador separando cada palavra.
Por exemplo: se str é "BOB loves-coding", então seu programa deve retornar a string
bobLovesCoding.
Exemplos
retorno strArr.join('');
}
Conversão ASCII
Faça com que a função ASCIIConversion(str) pegue o parâmetro str que está sendo passado e
retorne uma nova cadeia de caracteres onde cada caractere, além do caractere de espaço, é substituído
por seu código de caractere decimal correspondente. Por exemplo: se str é "dog", então seu programa
deve retornar a string 100111103 porque d = 100, o = 111, g = 103.
Exemplos
Faça com que a função SimpleEvens(num) verifique se cada número no parâmetro passed in é par.
Em caso afirmativo, retorne a cadeia de caracteres true, caso contrário, retorne a cadeia de caracteres
false. Por exemplo: se num é 4602225 seu programa deve retornar a sequência de caracteres false
porque 5 não é um número par.
Exemplos
Entrada: 2222220222
Saída: true
Entrada: 20864646452
Saída: false
função SimpleEvens(num) {
return num.toString(10).search(/[13579]/) === -1 ? 'verdadeiro' : 'falso';
}
SimpleEvens(linha de leitura());
Caso Snake
Faça com que a função SnakeCase(str) pegue o parâmetro str que está sendo passado e o devolva
no formato apropriado de caso de cobra, onde cada palavra é rebaixada e separada das palavras
adjacentes por meio de um sublinhado. A cadeia de caracteres conterá apenas letras e alguma
combinação de caracteres de pontuação delimitador separando cada palavra.
Por exemplo: se str é "BOB loves-coding", então seu programa deve retornar a string
bob_loves_coding.
Exemplos
SnakeCase(linha de leitura());
Encontrar interseção
Por exemplo: se strArr contiver ["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"] a saída deve retornar "1,4,13"
porque esses números aparecem em ambas as cadeias de caracteres. A matriz fornecida não estará vazia,
e cada cadeia de caracteres dentro da matriz será de números classificados em ordem crescente e pode
conter números negativos.
Exemplos
Faça com que a função SumMultiplier(arr) pegue a matriz de números armazenados em arr e
retorne a cadeia de caracteres true se quaisquer dois números puderem ser multiplicados para que a
resposta seja maior que o dobro da soma de todos os elementos na matriz. Caso contrário, retorne a
cadeia de caracteres false. Por exemplo: se arr é [2, 5, 6, -6, 16, 2, 3, 6, 5, 3], então a soma de todos
esses elementos é 42 e duplicar é 84. Há dois elementos na matriz, 16 * 6 = 96 e 96 é maior que 84,
portanto, seu programa deve retornar a cadeia de caracteres true.
Exemplos
Entrada: [2, 2, 2, 2, 4, 1]
Saída: false
Faça com que a função StringMerge(str) leia o parâmetro str que está sendo passado, que conterá
uma grande cadeia de caracteres alfanuméricos com um único caractere asterisco dividindo a cadeia
uniformemente em duas cadeias de caracteres separadas. Seu objetivo é retornar uma nova cadeia de
caracteres emparelhando os caracteres nos locais correspondentes em ambas as cadeias de caracteres. Por
exemplo: se str é "abc1*kyoo", então seu programa deve retornar a string akbyco1o porque a
emparelha com k, b emparelha com y, etc. A corda sempre se dividirá uniformemente com o asterisco no
centro.
Exemplos
Entrada: "aaa*bbb"
Saída: ababab
Entrada: "123hg*aaabb"
Saída: 1a2a3ahbgb
função StringMerge(str) {
const cleanString = str.replace(/[^\w*]/g, '');
const len = (cleanString.length - 1) / 2;
deixe newString = '';
const arr = str.split('*');
Um decremente
Faça com que a função OneDecremented(str) conte quantas vezes um dígito aparece que é
exatamente um a menos que o dígito anterior. Por exemplo: se str é "5655984", então seu programa
deve retornar 2 porque 5 aparece diretamente após 6 e 8 aparece diretamente após 9. A entrada sempre
conterá pelo menos 1 dígito.
Exemplos
Entrada: "56"
Saída: 0
Entrada: "9876541110"
Saída: 6
função OneDecremented(num) {
deixe o contador = 0;
deixe arr = num.toString().split('');
arr.forEach((val, ind) => {
if (parseInt(val, 10) - parseInt(arr[ind + 1], 10) === 1) {
contador++;
}
})
contador de devolução;
}
Faça com que a função ElementMerger(arr) pegue a matriz de inteiros positivos armazenados em
arr e execute o seguinte algoritmo: obtenha continuamente a diferença de inteiros adjacentes para criar
uma nova matriz de inteiros e, em seguida, faça o mesmo para a nova matriz até que um único número
seja deixado e retorne esse número. Por exemplo: se arr é [4, 5, 1, 2, 7], então tomar a diferença de
cada par de elementos produz a seguinte nova matriz: [1, 4, 1, 5]. Em seguida, faça o mesmo para que
essa nova matriz produza [3, 3, 4] -> [0, 1] -> 1. Então, para este exemplo, seu programa deve retornar o
número 1, porque é o que resta no final.
Exemplos
Entrada: [1, 1, 1, 2]
Saída: 1
função ElementMerger(arr) {
if (arr.length === 1) {
retorno arr[0];
} else {
newArr = [];
arr.forEach((val, ind) => {
if (ind < arr.length - 1) {
newArr.push(Math.abs(val - arr[ind + 1]));
}
})
retorno ElementMerger(newArr);
}
}
ElementMerger(readline());
GCF
Faça com que a função GCF(arr) pegue a matriz de números armazenados em arr que sempre conterá
apenas dois inteiros positivos, e retorne o maior fator comum deles. Por exemplo: se arr é [45, 12],
então seu programa deve retornar 3. Sempre haverá dois elementos na matriz e eles serão inteiros
positivos.
Exemplos
Entrada: [1, 6]
Saída: 1
Entrada: [12, 28]
Saída: 4
função GCF(arr) {
deixe res = nulo;
deixe max = Matemática.max(... ARR);
deixe min = Math.min(... ARR);
para (deixe i = 1; i <= min; i++) {
if (max % i === 0 && min % i === 0) {
res = i;
}
}
retorno res;
}
Número de série
Faça com que a função SerialNumber(str) pegue o parâmetro str que está sendo passado e
determine se ele é um número de série válido com as seguintes restrições:
1. Ele precisa conter três conjuntos cada um com três dígitos (1 a 9) separados por um ponto.
2. O primeiro conjunto de dígitos deve somar um número par.
3. O segundo conjunto de dígitos deve somar um número ímpar.
4. O último dígito em cada conjunto deve ser maior do que os dois dígitos anteriores no mesmo
conjunto.
Se todas as restrições acima forem atendidas dentro da cadeia de caracteres, o programa deverá retornar
a cadeia de caracteres true, caso contrário, o programa deverá retornar a string false. Por exemplo: se
str é "224.315.218", então seu programa deve retornar "true".
Exemplos
Entrada: "11.124.667"
Saída: false
Entrada: "114.568.112"
Saída: true
função SerialNumber(str) {
Verifique o formato da cadeia de caracteres
deixe a meta = /^\d{3}\.\d{3}\.\d{3}$/
se (!goal.test(str)) {
retornar 'falso';
}
Verificar condição um
if ((arr[0][0] + arr[0][1] + arr[0][2]) % 2) {
retornar 'falso';
}
Faça com que a função StringPeriods(str) pegue o parâmetro str que está sendo passado e
determine se há alguma substring K que possa ser repetida N > 1 vezes para produzir a string de entrada
exatamente como ela aparece. Seu programa deve retornar a substring K mais longa e, se não houver, ela
deve retornar a string -1.
Por exemplo: se str é "abcababcababcab", então seu programa deve retornar abcab porque essa é a
substring mais longa que é repetida 3 vezes para criar a cadeia de caracteres final. Outro exemplo: se
str é "abababababab", então seu programa deve retornar ababab porque é a substring mais longa. Se a
cadeia de caracteres de entrada contiver apenas um único caractere, seu programa deverá retornar a
cadeia de caracteres -1.
Exemplos
Entrada: "abcxabc"
Saída: -1
Entrada: "affedaaffed"
Saída: -1
função StringPeriods(str) {
usaremos apenas comprimentos de substrings que se dividem uniformemente em str
const len = str.comprimento;
const pivot = Matemática.max(Math.trunc(Math.sqrt(len)), len);
para (deixe i = 2; i <= pivô; i++) {
if (len % i === 0) {
bloco const = str.slice(0, len/i);
if (block.repeat(i) === str) {
bloco de retorno;
}
}
}
retorno -1;
}
Trocador de Palíndromo
Faça com que a função PalindromeSwapper(str) pegue o parâmetro str que está sendo passado e
determine se um palíndromo pode ser criado trocando dois caracteres adjacentes na cadeia de caracteres.
Se for possível criar um palíndromo, então seu programa deve retornar o palíndromo, se não retornar a
cadeia de caracteres -1. A cadeia de caracteres de entrada conterá apenas caracteres alfabéticos. Por
exemplo: se str é "rcaecar", então você pode criar um palíndromo trocando o segundo e terceiro
caracteres, então seu programa deve retornar a corda racecar que é a cadeia palindrômica final.
Exemplos
Entrada: "anna"
Saída: anna
Entrada: "kyaak"
Saída: caiaque
função PalindromeSwapper(str) {
let inputArray = str.split('');
let strLen = inputArray.length;
deixe palTester = function(arr) {
deixe len = arr.length;
para (deixe i = 0; i < len; i++) {
if (arr[i] !== arr[len - (1 + i)]) {
retornar false;
}
}
retorno verdadeiro;
}
Remover colchetes
Faça com que a função RemoveBrackets(str) pegue o parâmetro str string que está sendo passado,
que conterá apenas os caracteres "(" e ")", e determine o número mínimo de colchetes que precisam ser
removidos para criar uma cadeia de caracteres de colchetes corretamente correspondentes. Por exemplo:
se str é "(())", então seu programa deve retornar o número 1. A resposta pode ser potencialmente 0, e
sempre haverá pelo menos um conjunto de colchetes correspondentes na cadeia de caracteres.
Exemplos
Entrada: "(())((("
Saída: 3
Entrada: "()("
Saída: 2
função RemoveBrackets(str) {
deixar arremessos = 0;
deixe o contador = 0;
deixe arr = str.split('');
deixe len = arr.length;
arremessos de retorno;
}
Linha de comando
Faça com que a função CommandLine(str) tome o parâmetro str que está sendo passado, que
representa os parâmetros dados a um comando em um sistema PDP antigo. Os parâmetros são tokens
alfanuméricos (sem espaços) seguidos por um sinal de igual e por seu valor correspondente. Vários pares
de parâmetros/valores podem ser colocados na linha de comando com um único espaço entre cada par.
Os tokens e valores de parâmetro não podem conter sinais iguais, mas os valores podem conter espaços.
O objetivo da função é isolar os parâmetros e valores para retornar uma lista de comprimentos de
parâmetros e valores. Ele deve fornecer seu resultado no mesmo formato e na mesma ordem,
substituindo cada entrada (tokens e valores) por seu comprimento correspondente.
Exemplos
Faça com que a função StarRating(str) pegue o parâmetro str que está sendo passado, que será
uma classificação média entre 0,00 e 5,00, e converta essa classificação em uma lista de 5 nomes de
imagem a serem exibidos em uma interface de usuário para representar a classificação como uma lista de
estrelas e meias estrelas. As classificações devem ser arredondadas para a metade mais próxima. Existem
3 nomes de arquivos de imagem disponíveis: "full.jpg", "half.jpg", "empty.jpg". A saída será o nome das
5 imagens (sem a extensão), da esquerda para a direita, separadas por espaços. Por exemplo: se str é
"2.36", então isso deve ser exibido pela seguinte imagem:
Então seu programa deve retornar a string "full full half empty empty".
Exemplos
Entrada: "0.38"
Saída: meio vazio vazio vazio vazio
Entrada: "4.5"
Saída: full full full half
função StarRating(str) {
deixe num = (Math.round(parseFloat(str) * 2)) / 2;
deixe starString = '';
deixa a metade =! (Math.trunc(num) === num);