diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md index 2ada8449b..880f159b3 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md @@ -1 +1,10 @@ -# Suffix arrays \ No newline at end of file +# Suffix Arrays + +Suffix arrays are a data structure that allows us to quickly find all the suffixes of a string in lexicographical order. This is useful for many problems, such as finding the longest common substring between two strings, or finding the number of distinct substrings of a string. + +Free Content +Suffix Array | Set 1 (Introduction) +Suffix array introduction +Advanced Data Structures: Suffix Arrays +Suffix arrays: building +Suffix Arrays - Coursera diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md index 832b5d649..12546b634 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md @@ -1 +1,6 @@ -# Search pattern in text \ No newline at end of file +# Search Pattern in Text + +Searching pattern in text is a very common task in computer science. It is used in many applications like spell checkers, text editors, and many more. + +Free Content +Search Pattern in Text diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md index 635be7f8f..5ae8fb342 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md @@ -1 +1,8 @@ -# Brute force search \ No newline at end of file +# Brute Force Search + +Brute force search is a simple algorithm that checks for a pattern in a string by comparing each character of the string with the first character of the pattern. If the first character matches, it then compares the next character of the string with the next character of the pattern and so on. If all the characters of the pattern match, then the pattern is found. If the first character does not match, then the algorithm compares the second character of the string with the first character of the pattern and so on. + +Free Content +A beginner guide to Brute Force Algorithm for substring search +Brute Force Algorithm in Cybersecurity and String Search +Brute-Force Substring Search diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md index 440cb7889..d67ac568c 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md @@ -1 +1,14 @@ -# Knuth morris pratt \ No newline at end of file +# Knuth Morris Pratt + +Knuth morris pratt is a string searching algorithm that uses a precomputed array to find the substring in a string. This array is known as the prefix function. The prefix function is the longest prefix that is also a suffix of a substring. The prefix function is used to skip the characters that are already matched. The algorithm is as follows: + +* Compute the prefix function of the substring. +* Traverse through the string and substring simultaneously. +* If the characters match, increment the index of both the string and substring. +* If the characters don't match, increment the index of the string by the value of the prefix function at the index of the substring. + +Free Content +KMP Algorithm for Pattern Searching +The Knuth-Morris-Pratt (KMP)Algorithm +9.1 Knuth-Morris-Pratt KMP String Matching Algorithm +Knuth-Morris Pratt diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md index c099a4bda..1e8c607af 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md @@ -1 +1,8 @@ -# Boyer moore \ No newline at end of file +# Boyer Moore Algorithm + +Boyer Moore algorithm is a string searching algorithm that is used to find the index of a substring in a string. It is a very efficient algorithm that is used in many applications. It is used in text editors, compilers, and many other applications. + +Free Content +Boyer Moore Algorithm for Pattern Searching +The Boyer-Moore Algorithm +Boyer Moore Algorithm diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md index 323522681..a69031e7f 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md @@ -1 +1,10 @@ -# Rabin karp \ No newline at end of file +# Rabin-Karp's algorithm + +Rabin-Karp algorithm is a string searching algorithm that uses hashing to find any one of a set of pattern strings in a text. For strings of average length `n`, it performs in `O(n+m)` time with `O(m)` space, where `m` is the length of the pattern. It is often used in bioinformatics to search for DNA patterns. + +Free Content +Rabin Karp's Algorithm +Optimization: Precomputation +Optimization: Implementation and Analysis +Lecture 9: Table Doubling, Karp-Rabin +Rolling Hashes, Amortized Analysis diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md index a0a5ebd55..4c3ffe636 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md @@ -1 +1,11 @@ -# Substring search \ No newline at end of file +# Substring Search + +Substring search is the problem of finding a substring in a string. This is a very common problem in computer science, and there are many algorithms for solving it. + +Free Content +Introduction to Substring Search +What is the fastest substring search algorithm? +Check if a string is substring of another +Anagram Substring Search (Or Search for all permutations) +Substring Search - Exercises + diff --git a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/readme.md b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/readme.md index 7937d796f..d37e88372 100644 --- a/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/readme.md +++ b/content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/readme.md @@ -1 +1,8 @@ -# String search and manipulations \ No newline at end of file +# String Search and Manipulations + +String search and manipulation is a very important topic in computer science. It is used in many different applications, such as searching or replacing a specific pattern, word or character in a string. + +Free Content +String-searching algorithm +Pattern Searching +Applications of String Matching Algorithms