Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion js-built-ins/problems/easy/countOccurrences.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,17 @@


function countOccurrences(arr) {
// Your code here
let n=arr.length;
let freq={};
for(let i=0; i<n; i++){
if (freq[arr[i]]==undefined){
freq[arr[i]]=1;
}
else{
freq[arr[i]]++;
}
}
return freq;
}

module.exports = countOccurrences;
Expand Down
8 changes: 7 additions & 1 deletion js-built-ins/problems/easy/countVowels.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,13 @@
*/

function countVowels(str) {
// Your code here
let s=str;
let cnt=0;

for (let ch of s.toLowerCase()){
if ("aeiou".includes(ch)) cnt++;
}
return cnt;
}

module.exports = { countVowels };
Expand Down
20 changes: 18 additions & 2 deletions js-built-ins/problems/easy/fibonacci.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,28 @@

// Iterative Fibonacci function
function fibonacci(n) {
// Your code here
n-=2;

let prev=0;
let curr=1;
let arr=[0,1];

while(n){
summ=prev+curr;
prev=curr;
curr=summ;
arr.push(summ);
n--;
}
return arr;
}

// Recursive Fibonacci function
function fibonacciRecursive(n) {
// Your code here
if(n==0) return 0;
if(n==1) return 1

return fibonacciRecursive(n-1)+fibonacciRecursive(n-2);
}

module.exports = { fibonacci, fibonacciRecursive };
Expand Down
3 changes: 2 additions & 1 deletion js-built-ins/problems/easy/reverseString.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
*/

function reverseString(str) {
// Your code here
let reversed=str.split("").reverse().join("");
return reversed;
}

module.exports = reverseString;
18 changes: 16 additions & 2 deletions js-built-ins/problems/hard/uniqueElements.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,26 @@
- Input: []
- Output: []

just to test

Once you've implemented the logic, test your code by running
- `npm run test-unique`
*/

function getUniqueElements(arr) {
// Your code here
let seen=new Set();
let narr=[];

for(let num of arr){


if(!seen.has(num)){
narr.push(num);
seen.add(num);
}

}
return narr;
}

module.exports = getUniqueElements;
module.exports = getUniqueElements;
17 changes: 16 additions & 1 deletion js-built-ins/problems/hard/wordCompression.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,22 @@


function compressWords(arr) {
// Your code here
let n=arr.length;
let narr=[];
let cnt=0;
for(let i=0; i<n; i++){
cnt++;
if(arr[i]!==arr[i+1]){
if(cnt>1){
narr.push(arr[i]+cnt);
}
else{
narr.push(arr[i]);
}
cnt=0;
}
}
return narr;
}


Expand Down
3 changes: 1 addition & 2 deletions js-built-ins/problems/medium/findDuplicates.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,4 @@ function findDuplicates(arr) {
return arr.filter((ele, index) => arr.indexOf(ele) !== index);
}

module.exports = findDuplicates;

module.exports = findDuplicates;
22 changes: 21 additions & 1 deletion js-built-ins/problems/medium/isPerfectNumber.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,27 @@
*/

function isPerfectNumber(num) {
// Your code here
if (num <= 1) return false;

let summ = 0;

for (let i = 1; i * i <= num; i++) {

if (num % i === 0) {

if (i !== num) {
summ += i;
}

let other = num / i;

if (other !== i && other !== num) {
summ += other;
}
}
}

return summ === num;
}

module.exports = { isPerfectNumber };
18 changes: 17 additions & 1 deletion js-built-ins/problems/medium/non-repeat.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,22 @@
- `npm run test-nonrepeat`
*/
function nonrepeat(str) {
// Your code here
let freq={};
let ans="";
for(let s of str){
freq[s]=(freq[s]||0)+1;
}

for(let s of str){
if(freq[s]==1){
ans+=s;
break;
}
}
if(ans==""){
return null;
}
return ans;

}
module.exports = nonrepeat;
16 changes: 15 additions & 1 deletion js-built-ins/problems/medium/primeupto100.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,21 @@
*/

function getPrimesUpTo100() {
// Your code here
let arr=[];
for(let i=2; i<=100; i++){
let isPrime=true;

for(let j=2; j*j<=i; j++){
if(i%j==0){
isPrime=false;
break
}
}
if(isPrime){
arr.push(i);
}
}
return arr;
}

module.exports = { getPrimesUpTo100 };
15 changes: 14 additions & 1 deletion js-built-ins/problems/medium/reverseInteger.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,20 @@
*/

function reverseInteger(num) {
// Your code here

let s = String(num);
let sign=1;
if(s[0]=='-'){
sign=-1;
s=s.slice(1);
}
let ns=s.split("").reverse().join("");

let ans=Number(ns);
ans*=sign;

return ans;

}

module.exports = reverseInteger;
20 changes: 18 additions & 2 deletions js-built-ins/problems/medium/stringCompression.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,24 @@
Once you've implemented the logic, test your code by running
- `npm run test-compressString`
*/
function compression(str) {
// Your code here

function compression(s){
let n=s.length;
let cnt=0;
let ans="";

for(let i=0; i<n; i++){
cnt++;
if(s[i]!==s[i+1]){
ans+=s[i];
if(cnt>1){
ans+=cnt;
}
cnt=0;
}
}

return ans;
}

module.exports = compression;