mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 08:16:50 +08:00
Added string pattern matching algorithm (#238)
This commit is contained in:
36
String/PatternMatching.js
Normal file
36
String/PatternMatching.js
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
Pattern matching is case insensitive as
|
||||
the inputs are converted to lower case before the
|
||||
algorithm is run.
|
||||
|
||||
The algorithm will run through the entire text and
|
||||
return the starting index if the given pattern is
|
||||
available in the text
|
||||
*/
|
||||
const checkIfPatternExists = (text, pattern) => {
|
||||
const textLength = text.length // Store the length of the text in a variable
|
||||
const patternLength = pattern.length // Store the length of the pattern in a variable
|
||||
|
||||
// Iterate through the text until the textlength - patternlength index
|
||||
for (let i = 0; i <= textLength - patternLength; i++) {
|
||||
// For each character in the text check if the subsequent character
|
||||
// are matching the given pattern; if not break from the condition
|
||||
for (let j = 0; j < textLength; j++) {
|
||||
if (text[i + j] !== pattern[j]) break
|
||||
|
||||
// For each iteration of j check if the value of
|
||||
// j + 1 is equal to the length of the pattern
|
||||
if (j + 1 === patternLength) {
|
||||
console.log(`Given pattern is found at index ${i}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const main = () => {
|
||||
const text = 'AABAACAADAABAAAABAA'
|
||||
const pattern = 'AABA'
|
||||
checkIfPatternExists(text.toLowerCase(), pattern.toLowerCase())
|
||||
}
|
||||
|
||||
main()
|
Reference in New Issue
Block a user