СРАВНЕНИЕ ЗАДАЧ ТРОЙНИ HACKERRANK (РЕШЕНИЕ)
ПОСТАНОВКА ЗАДАЧИ:Алиса и Боб создали по одной задаче для HackerRank. Рецензент оценивает две задачи, присуждая баллы по шкале от 1 до 100 по трем категориям: ясность задачи, оригинальность и сложность.
Задача состоит в том, чтобы найти их точки сравнения путем сравнения a[0] с b[0 ], a[1] с b[1] и a[2] с b[2].
Если a[i] > b[i], то Алиса получает 1 очко.
Если a[i] ‹ b[i], то Боб получает 1 балл.
Если a[i] = b[i], то ни один человек не получает балл.
Баллы сравнения — это общее количество баллов a человек заработал.
Учитывая a и b, определите их соответствующие точки сравнения.
РЕШЕНИЕ:
шаг 1:мы объявляем нашу функцию, назовем ее compareTriplets
function compareTriplets(a, b){
}
шаг 2: объявите счетчики для отслеживания количества раз, когда элементы внутри каждого массива больше, меньше или равны друг другу.
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
}
шаг 3: объявите массивы для сбора значений счетчиков, объявленных на шаге 2.
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
let finalArray1 = [];
let finalArray2 = [];
}
шаг 4:объявите переменную итератора, которая получает ключи первого массива(а)
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
let finalArray1 = [];
let finalArray2 = [];
const iterator = a.keys();
}
шаг 5: объявите оператор цикла for. Этот цикл использует итератор для сравнения значений в двух массивах, устанавливает счетчики на увеличение или уменьшение и, наконец, помещает счетчики в их массивы (finalArray1, finalArray2)
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
let finalArray1 = [];
let finalArray2 = [];
const iterator = a.keys();
for (const key of iterator) {
if (a[key] > b[key]) {
counterA++;
counterB += 0;
finalArray1.push(counterA);
finalArray2.push(counterB);
}
if (a[key] < b[key]) {
counterB++;
counterA += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
if (a[key] == b[key]) {
counterA += 0;
counterB += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
}
}
шаг 6: мы собираем последние значения из finalArray1 и finalArray2 соответственно и передаем их в выходной массив
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
let finalArray1 = [];
let finalArray2 = [];
const iterator = a.keys();
for (const key of iterator) {
if (a[key] > b[key]) {
counterA++;
counterB += 0;
finalArray1.push(counterA);
finalArray2.push(counterB);
}
if (a[key] < b[key]) {
counterB++;
counterA += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
if (a[key] == b[key]) {
counterA += 0;
counterB += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
}
const res1 = finalArray1[finalArray1.length - 1];
const res2 = finalArray2[finalArray2.length - 1];
const output = [res1, res2];
console.log(output);
return output;
}
шаг 7: запускаем функцию для всех тестовых случаев Hackerrank.
function compareTriplets(a,b) {
let counterA = 0;
let counterB = 0;
let finalArray1 = [];
let finalArray2 = [];
const iterator = a.keys();
for (const key of iterator) {
if (a[key] > b[key]) {
counterA++;
counterB += 0;
finalArray1.push(counterA);
finalArray2.push(counterB);
}
if (a[key] < b[key]) {
counterB++;
counterA += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
if (a[key] == b[key]) {
counterA += 0;
counterB += 0;
finalArray2.push(counterB);
finalArray1.push(counterA);
}
}
const res1 = finalArray1[finalArray1.length - 1];
const res2 = finalArray2[finalArray2.length - 1];
const output = [res1, res2];
console.log(output);
return output;
}
compareTriplets([1,2,3], [3,2,1])
compareTriplets([5,6,7], [3,6,10])
compareTriplets([17,18,30], [99,16,8])
compareTriplets([20,20,30], [20,20,50])
compareTriplets([6,8,12], [7,9,15])
compareTriplets([10,15,20], [5,6,7])
Результат:
