These are few coding interview question which I faced during my interview journey with different companies. I hope you will find helpful it.
Table of Contents
1. Write a program for anagram.
An anagram is a word or phrase formed by rearranging the letters in another word or phrase.
let s1 = 'spar'
let s2 = 'rasp'
function isAnagram(s1, s2) {
if (s1.length !== s2.length) return false;
for (let c of s1) {
if (s2.indexOf(c) === -1) return false
}
return true;
}2. Write a function which will accept a string of characters and find the count of each character.
let str = 'hello everyone';
function count(str) {
let coutObj = {}
for(let c of str) {
coutObj[c] = coutObj[c] ? coutObj[c] + 1 : 1
}
return coutObj;
}
console.log(count(str))3. De-structuring of given object.
let user = {
name: "Anil",
age: 32,
fullname: {
first: 'Anil',
last: 'kumar'
}
}
const { name, age } = user
const { fullname: { first, last } } = user;
OR
const { fullname: { first, last }, name, age } = user4. Write a program to print n prime number
function getPrimeNumber(n) {
if(n == 0) return [];
if (n == 1) return [1];
let primeArray = [1, 2];
let isPrime = true;
for (let i = 3; i <= n; i++) {
for (let j = i - 1; j < i && j > 1; j--) {
if (i % j === 0) {
isPrime = false;
break;
}
}
if (isPrime) primeArray.push(i)
isPrime = true;
}
return primeArray;
}
console.log(getPrimeNumber(100));5. Write a program: how many step you will take to check str2 first char can match with str1 first char
let str1 = 'cabcd';
let str2 = 'bddcc';
function check(str1, str2) {
let firstChar = str1[0];
if (str2.indexOf(firstChar) === -1) return -1;
if (firstChar === str2[0]) return 0;
//let tempStr = '';
let steps = 0;
for (let c of str2) {
if (c === firstChar) {
steps = steps + 1;
//tempStr += c;
break;
} else {
steps = steps + 1;
//tempStr += c;
}
}
return { steps};
}
console.log(check(str1, str2));6. Write a program to sort an object for a give value.
// sort on the basis of name
const items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic', value: 13 },
{ name: 'Zeros', value: 37 }
];
let res = items.sort(function (a, b) {
// return a.value - b.value; // sorting with value
return a.name.localeCompare(b.name);
// return (a, b) => a.value.localeCompare(b.value, "en", { numeric: true });
});
console.log(res);7. Write a program sum(1)(2)(3)…. Or Implement infinite currying
// Infinite currying sum(1)(2)(3)....
function sum1(a) {
return function(b) {
if(b) return sum1(a+b);
return a;
}
}
console.log(sum1(1)(3)(4)(6)())8. Write a program to reverse a string using recursion.
function strR(str) {
// base
if(!str.length) return '';
if(str.length === 1) return str;
return strR(str.substr(1, str.length)) + strR(str[0]);
}
console.log(strR('anil'));9. Write a program to flat an array (without using inbuilt method)
function flatDeep(arr, d = 1) {
return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatDeep(val, d - 1) : val), []) : arr.slice();
};
let nestedArray = [1, [2, 3], [1, 3, [5, [4]]]];
console.log(flatDeep(nestedArray, Infinity));10. Write a function which accept nXm dimension array and give result like this
ex1 => [[1,2,3],[4,5,6]] => [[5,7,9]] ex2=> [[2,3],[5,6]] => [[7,9]]
function arrayReduce(arr) {
output = [];
arr.reduce((a, b) => {
console.log({a,b})
let temp = []
for(let [index, val] of a.entries()) {
//console.log({index, val})
temp[index] = val+ b[index];
}
output.push(temp);
return temp;
});
return output;
}
console.log(arrayReduce([[1,2,3],[4,5,6]]));
