Mid-Level JavaScript Interview - Part 2: Algorithm + Debrief

preview_player
Показать описание
I do a mock mid-level JS interview with an awesome developer Michael Alvarez.

Рекомендации по теме
Комментарии
Автор

const replaceLongest = (str: string) => {
const longest = str
.split('1')
.reduce((item: string, acc: string) =>
acc.length > item.length ? acc : item
);

const replacer = longest.replaceAll('0', '#');

return str.replaceAll(longest, replacer);
};

pavelelantsev
Автор

I had a go in PHP (my main language). It works.

function {
$group_key = $max_zeros = $grouping = 0;
$previous = $output = '';

$zero_groupings = explode('1', $input);

foreach ($zero_groupings as $key => $value) {
if (strlen($value) > $max_zeros) {
$group_key = $key;
$max_zeros = strlen($value);
}
}

$numbers = str_split($input);

foreach ($numbers as $key => $value) {
if ($previous == 1 && $value == 0) {
$grouping++;
}

($grouping == $group_key && $value != 1) ? $output .= '#' : $output .= $value;

$previous = $value;
}

return $output;
}

echo

stevenh
Автор

How do I do one I wanna embarrass myself. 😂

Tyheir
Автор

here us ny pathetic try to solve that:
let str = '0010001010000101';

let startOfTheLongestZeros = 0;
let count = 0;
let isZerosRow = false;
let max = {start:0, count:0};

const strArray = [...str]

strArray.forEach((char, index) => {

if(char === '1') {
if(count > max.count) {
max.start = startOfTheLongestZeros;
max.count = count;
console.log(max)
}
isZerosRow = false;
count = 0;
}

if(char === '0') {
if(!isZerosRow) {
startOfTheLongestZeros = index;
}
isZerosRow = true;
count++;
}

})
strArray.splice(max.start, max.count, Array(max.count).fill('#').join(''))

fngkarp
Автор

i'm not good at programming and i'm unemployed cause i usually fail this tests 🤣
this is how i solved it but probably my bigO is so bad i looped like 4 or 5 times

const longestZeroSeq = (zerosSeq) => {
let zeroHolder = "";
let longest = 0;
=> {
zeroHolder = number == 0 ? zeroHolder + "0" : "";
if (zeroHolder.length > longest) longest = zeroHolder.length;
});
return zerosSeq.replace("0".repeat(longest), "#".repeat(longest));
};


//001###10100101

laskyb