From 5709761652736dd3a819e62d280c74b6b3e0a54a Mon Sep 17 00:00:00 2001 From: Koddi-Evangelista Date: Thu, 7 Oct 2021 11:13:28 +0800 Subject: [PATCH 1/2] feat: add string algorithm in javascript --- DSA/DSA-Javascript/Strings/CheckCamelCase.js | 15 ++++++++++++ DSA/DSA-Javascript/Strings/CheckFlatCase.js | 15 ++++++++++++ DSA/DSA-Javascript/Strings/CheckKebabCase.js | 15 ++++++++++++ DSA/DSA-Javascript/Strings/CheckPalindrome.js | 21 +++++++++++++++++ DSA/DSA-Javascript/Strings/CheckPascalCase.js | 15 ++++++++++++ DSA/DSA-Javascript/Strings/CheckSnakeCase.js | 15 ++++++++++++ DSA/DSA-Javascript/Strings/ConsonantCount.js | 23 +++++++++++++++++++ DSA/DSA-Javascript/Strings/ReverseString.js | 19 +++++++++++++++ DSA/DSA-Javascript/Strings/VowelCount.js | 23 +++++++++++++++++++ 9 files changed, 161 insertions(+) create mode 100644 DSA/DSA-Javascript/Strings/CheckCamelCase.js create mode 100644 DSA/DSA-Javascript/Strings/CheckFlatCase.js create mode 100644 DSA/DSA-Javascript/Strings/CheckKebabCase.js create mode 100644 DSA/DSA-Javascript/Strings/CheckPalindrome.js create mode 100644 DSA/DSA-Javascript/Strings/CheckPascalCase.js create mode 100644 DSA/DSA-Javascript/Strings/CheckSnakeCase.js create mode 100644 DSA/DSA-Javascript/Strings/ConsonantCount.js create mode 100644 DSA/DSA-Javascript/Strings/ReverseString.js create mode 100644 DSA/DSA-Javascript/Strings/VowelCount.js diff --git a/DSA/DSA-Javascript/Strings/CheckCamelCase.js b/DSA/DSA-Javascript/Strings/CheckCamelCase.js new file mode 100644 index 00000000..941facc0 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckCamelCase.js @@ -0,0 +1,15 @@ +// CheckCamelCase method checks the given string is in camelCase or not. + +const checkCamelCase = varName => { + // firstly, check that input is a string or not. + if (typeof varName !== 'string') { + return 'not a string.' + } + + const reg = /^[a-z][A-Za-z]*$/ + return reg.test(varName) +} + +console.log(checkCamelCase('myVar')) +console.log(checkCamelCase('MyVar')) +console.log(checkCamelCase('my-var')) diff --git a/DSA/DSA-Javascript/Strings/CheckFlatCase.js b/DSA/DSA-Javascript/Strings/CheckFlatCase.js new file mode 100644 index 00000000..098a2663 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckFlatCase.js @@ -0,0 +1,15 @@ +// checkFlatCase method checks if the given string is in flatcase or not. + +const checkFlatCase = varname => { + // firstly, check that input is a string or not. + if (typeof varname !== 'string') { + return 'not a string.' + } + + const reg = /^[a-z]*$/ + return reg.test(varname) +} + +console.log(checkFlatCase('myvar')) +console.log(checkFlatCase('MyVar')) +console.log(checkFlatCase('my-var')) diff --git a/DSA/DSA-Javascript/Strings/CheckKebabCase.js b/DSA/DSA-Javascript/Strings/CheckKebabCase.js new file mode 100644 index 00000000..a1d85627 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckKebabCase.js @@ -0,0 +1,15 @@ +// CheckKebabCase method checks the given string is in kebab-case or not. + +const checkSnakeCase = varName => { + // firstly, check that input is a string or not. + if (typeof varName !== 'string') { + return 'not a string.' + } + + const reg = /(.*?)-([a-zA-Z])*/ + return reg.test(varName) +} + +console.log(checkSnakeCase('myVar')) +console.log(checkSnakeCase('my_var')) +console.log(checkSnakeCase('my-var')) diff --git a/DSA/DSA-Javascript/Strings/CheckPalindrome.js b/DSA/DSA-Javascript/Strings/CheckPalindrome.js new file mode 100644 index 00000000..dc1dbbba --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckPalindrome.js @@ -0,0 +1,21 @@ +// Palindrome check is case sensitive; i.e. Aba is not a palindrome + +const checkPalindrome = str => { + // check that input is a string + if (typeof str !== 'string') { + return 'Not a string' + } + if (str.length === 0) { + return 'Empty string' + } + // Reverse only works with array, thus convert the string to array, reverse it and convert back to string + // return as palindrome if the reversed string is equal to the input string + const reversed = [...str].reverse().join('') + return str === reversed ? 'Palindrome' : 'Not a Palindrome' +} + +console.log(checkPalindrome('hello')) +console.log(checkPalindrome(12)) +console.log(checkPalindrome(null)) +console.log(checkPalindrome(undefined)) +console.log(checkPalindrome('level')) diff --git a/DSA/DSA-Javascript/Strings/CheckPascalCase.js b/DSA/DSA-Javascript/Strings/CheckPascalCase.js new file mode 100644 index 00000000..f8f1215f --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckPascalCase.js @@ -0,0 +1,15 @@ +// CheckPascalCase method checks the given string is in PascalCase or not. + +const checkPascalCase = VarName => { + // firstly, check that input is a string or not. + if (typeof VarName !== 'string') { + return 'not a string.' + } + + const reg = /^[A-Z][A-Za-z]*$/ + return reg.test(VarName) +} + +console.log(checkPascalCase('myVar')) +console.log(checkPascalCase('MyVar')) +console.log(checkPascalCase('my-var')) diff --git a/DSA/DSA-Javascript/Strings/CheckSnakeCase.js b/DSA/DSA-Javascript/Strings/CheckSnakeCase.js new file mode 100644 index 00000000..d465497a --- /dev/null +++ b/DSA/DSA-Javascript/Strings/CheckSnakeCase.js @@ -0,0 +1,15 @@ +// CheckSnakeCase method checks the given string is in snake_case or not. + +const checkSnakeCase = varName => { + // firstly, check that input is a string or not. + if (typeof varName !== 'string') { + return 'not a string.' + } + + const reg = /(.*?)_([a-zA-Z])*/ + return reg.test(varName) +} + +console.log(checkSnakeCase('myVar')) +console.log(checkSnakeCase('my_var')) +console.log(checkSnakeCase('my-var')) diff --git a/DSA/DSA-Javascript/Strings/ConsonantCount.js b/DSA/DSA-Javascript/Strings/ConsonantCount.js new file mode 100644 index 00000000..594006a0 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/ConsonantCount.js @@ -0,0 +1,23 @@ +// Given a string of words or phrases, count the number of consonants. + +const vowelCount = value => { + if (typeof value !== 'string') { + return 'not a string' + } + const vowels = ['a', 'e', 'i', 'o', 'u'] + + let countConsonants = 0 + + for (let i = 0; i < value.length; i++) { + const char = value[i].toLowerCase() + if (!vowels.includes(char)) { + countConsonants++ + } + } + return countConsonants +} + +console.log(vowelCount('hello')) +console.log(vowelCount('rythm')) +console.log(vowelCount(20)) +console.log(vowelCount(null)) diff --git a/DSA/DSA-Javascript/Strings/ReverseString.js b/DSA/DSA-Javascript/Strings/ReverseString.js new file mode 100644 index 00000000..6724a4b1 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/ReverseString.js @@ -0,0 +1,19 @@ +// Reverse a given string + +function reverseString (string) { + if (typeof string !== 'string') { + return 'not a string.' + } + let reversedString = '' + let index + + for (index = string.length - 1; index >= 0; index--) { + reversedString += string[index] + } + + return reversedString +} + +console.log(reverseString('hello')) +console.log(reverseString(100)) +console.log(reverseString('world')) diff --git a/DSA/DSA-Javascript/Strings/VowelCount.js b/DSA/DSA-Javascript/Strings/VowelCount.js new file mode 100644 index 00000000..9578b861 --- /dev/null +++ b/DSA/DSA-Javascript/Strings/VowelCount.js @@ -0,0 +1,23 @@ +// Given a string of words or phrases, count the number of vowels. + +const vowelCount = value => { + if (typeof value !== 'string') { + return 'not a string' + } + const vowels = ['a', 'e', 'i', 'o', 'u'] + + let countVowels = 0 + + for (let i = 0; i < value.length; i++) { + const char = value[i].toLowerCase() + if (vowels.includes(char)) { + countVowels++ + } + } + return countVowels +} + +console.log(vowelCount('hello')) +console.log(vowelCount('rythm')) +console.log(vowelCount(20)) +console.log(vowelCount(null)) From 0fc481b4f1e06c2715ed0cdb442f3be7e140c821 Mon Sep 17 00:00:00 2001 From: Koddi-Evangelista Date: Fri, 8 Oct 2021 10:18:29 +0800 Subject: [PATCH 2/2] fix: put strings algorithms to right folder --- {DSA/DSA-Javascript => Javascript}/Strings/CheckCamelCase.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/CheckFlatCase.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/CheckKebabCase.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/CheckPalindrome.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/CheckPascalCase.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/CheckSnakeCase.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/ConsonantCount.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/ReverseString.js | 0 {DSA/DSA-Javascript => Javascript}/Strings/VowelCount.js | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckCamelCase.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckFlatCase.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckKebabCase.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckPalindrome.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckPascalCase.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/CheckSnakeCase.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/ConsonantCount.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/ReverseString.js (100%) rename {DSA/DSA-Javascript => Javascript}/Strings/VowelCount.js (100%) diff --git a/DSA/DSA-Javascript/Strings/CheckCamelCase.js b/Javascript/Strings/CheckCamelCase.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckCamelCase.js rename to Javascript/Strings/CheckCamelCase.js diff --git a/DSA/DSA-Javascript/Strings/CheckFlatCase.js b/Javascript/Strings/CheckFlatCase.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckFlatCase.js rename to Javascript/Strings/CheckFlatCase.js diff --git a/DSA/DSA-Javascript/Strings/CheckKebabCase.js b/Javascript/Strings/CheckKebabCase.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckKebabCase.js rename to Javascript/Strings/CheckKebabCase.js diff --git a/DSA/DSA-Javascript/Strings/CheckPalindrome.js b/Javascript/Strings/CheckPalindrome.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckPalindrome.js rename to Javascript/Strings/CheckPalindrome.js diff --git a/DSA/DSA-Javascript/Strings/CheckPascalCase.js b/Javascript/Strings/CheckPascalCase.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckPascalCase.js rename to Javascript/Strings/CheckPascalCase.js diff --git a/DSA/DSA-Javascript/Strings/CheckSnakeCase.js b/Javascript/Strings/CheckSnakeCase.js similarity index 100% rename from DSA/DSA-Javascript/Strings/CheckSnakeCase.js rename to Javascript/Strings/CheckSnakeCase.js diff --git a/DSA/DSA-Javascript/Strings/ConsonantCount.js b/Javascript/Strings/ConsonantCount.js similarity index 100% rename from DSA/DSA-Javascript/Strings/ConsonantCount.js rename to Javascript/Strings/ConsonantCount.js diff --git a/DSA/DSA-Javascript/Strings/ReverseString.js b/Javascript/Strings/ReverseString.js similarity index 100% rename from DSA/DSA-Javascript/Strings/ReverseString.js rename to Javascript/Strings/ReverseString.js diff --git a/DSA/DSA-Javascript/Strings/VowelCount.js b/Javascript/Strings/VowelCount.js similarity index 100% rename from DSA/DSA-Javascript/Strings/VowelCount.js rename to Javascript/Strings/VowelCount.js