Implement Raita Algorithm for String Matching
Description:
The Raita algorithm is a variation of the Boyer-Moore algorithm that uses a different heuristic for shifting the pattern. It is efficient for single pattern matching and has an average-case complexity of O(n + m), where n is the length of the text and m is the length of the pattern.
This issue involves implementing the Raita algorithm in the pydatastructs.strings.algorithms module and adding corresponding test cases.