These things are inputs to an algorithm that uses a rolling hash to achieve an average runtime of big O of m plus n. Levenshtein distance is a form of edit distance, which refers to the dissimilarity of these objects. The Knuth-Morris-Pratt and (*) Rabin-Karp algorithms search these things. The Kleene star returns a set of these closed under concatenation. Length is stored implicitly in the null-terminating type. Operations like grep are used for pattern matching in these using regular expressions. For 10 points, name this data type comprising 
These things are inputs to an algorithm that uses a rolling hash to achieve an average runtime of big O of m plus n. Levenshtein distance is a form of edit distance, which refers to the dissimilarity of these objects. The Knuth-Morris-Pratt and (*) Rabin-Karp algorithms search these things. The Kleene star returns a set of these closed under concatenation. Length is stored implicitly in the null-terminating type. Operations like grep are used for pattern matching in these using regular expressions. For 10 points, name this data type comprising a sequence of characters.
These things are inputs to an algorithm that uses a rolling hash to achieve an average runtime of big O of m plus n. Levenshtein distance is a form of edit distance, which refers to the dissimilarity of these objects.
strings [prompt on "str"]