A string u is a substring (or factor) of a string t if there exists two strings p and s such that t = pus. In particular, the empty string is a substring of every string. Example: The string u=\texttt{ana} is equal to substrings (and subsequences) of t=\texttt{banana} at two different offsets: banana ||||| ana|| ||| ana The first occurrence is obtained with p=\texttt{b} and s=\texttt{na}, while the second occurrence is obtained with p=\texttt{ban} and s being the empty string. A substring of a string is a
prefix of a
suffix of the string, and equivalently a suffix of a prefix; for example, nan is a prefix of nana, which is in turn a suffix of banana. If u is a substring of t, it is also a
subsequence, which is a more general concept. The occurrences of a given pattern in a given string can be found with a
string searching algorithm. Finding the longest string which is equal to a substring of two or more strings is known as the
longest common substring problem. In the mathematical literature, substrings are also called
subwords (in America) or
factors (in Europe). == Prefix ==