Add content for string search and manipulation algorithms

pull/2902/head
Kamran Ahmed 2 years ago
parent 09b95f30d7
commit 6fa7117a33
  1. 11
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/100-suffix-arrays.md
  2. 7
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/101-search-pattern-in-text.md
  3. 9
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/100-brute-force-search.md
  4. 15
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/101-knuth-morris-pratt.md
  5. 9
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/102-boyer-moore.md
  6. 11
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/103-rabin-karp.md
  7. 12
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/102-substring-search/readme.md
  8. 9
      content/roadmaps/103-computer-science/content/105-string-search-and-manipulations/readme.md

@ -1 +1,10 @@
# Suffix arrays
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/suffix-array-set-1-introduction/'>Suffix Array | Set 1 (Introduction)</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=zqKlL3ZpTqs'>Suffix array introduction</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=IzMxbboPcqQ'>Advanced Data Structures: Suffix Arrays</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=ZWlbhBjjwyA'>Suffix arrays: building</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays'>Suffix Arrays - Coursera</BadgeLink>

@ -1 +1,6 @@
# Search pattern in text
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text'>Search Pattern in Text</BadgeLink>

@ -1 +1,8 @@
# Brute force search
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://nulpointerexception.com/2019/02/10/a-beginner-guide-to-brute-force-algorithm-for-substring-search/'>A beginner guide to Brute Force Algorithm for substring search</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.baeldung.com/cs/brute-force-cybersecurity-string-search'>Brute Force Algorithm in Cybersecurity and String Search</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search'>Brute-Force Substring Search</BadgeLink>

@ -1 +1,14 @@
# Knuth morris pratt
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/kmp-algorithm-for-pattern-searching/'>KMP Algorithm for Pattern Searching</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.javatpoint.com/daa-knuth-morris-pratt-algorithm'>The Knuth-Morris-Pratt (KMP)Algorithm</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=V5-7GzOfADQ'>9.1 Knuth-Morris-Pratt KMP String Matching Algorithm</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt'>Knuth-Morris Pratt</BadgeLink>

@ -1 +1,8 @@
# Boyer moore
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/boyer-moore-algorithm-for-pattern-searching/'>Boyer Moore Algorithm for Pattern Searching</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.javatpoint.com/daa-boyer-moore-algorithm'>The Boyer-Moore Algorithm</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore'>Boyer Moore Algorithm</BadgeLink>

@ -1 +1,10 @@
# Rabin karp
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw'>Rabin Karp's Algorithm</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation'>Optimization: Precomputation</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis'>Optimization: Implementation and Analysis</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9'>Lecture 9: Table Doubling, Karp-Rabin</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=33'>Rolling Hashes, Amortized Analysis</BadgeLink>

@ -1 +1,11 @@
# Substring search
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG'>Introduction to Substring Search</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://stackoverflow.com/questions/3183582/what-is-the-fastest-substring-search-algorithm'>What is the fastest substring search algorithm?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/check-string-substring-another/'>Check if a string is substring of another</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/anagram-substring-search-search-permutations/'>Anagram Substring Search (Or Search for all permutations)</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://algs4.cs.princeton.edu/53substring/'>Substring Search - Exercises</BadgeLink>

@ -1 +1,8 @@
# String search and manipulations
# 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.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://en.wikipedia.org/wiki/String-searching_algorithm'>String-searching algorithm</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/algorithms-gq/pattern-searching/'>Pattern Searching</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/applications-of-string-matching-algorithms/'>Applications of String Matching Algorithms</BadgeLink>

Loading…
Cancel
Save