So since we'll be working so much with strings and with Python, I want to introduce some string vocabulary, and then also some Python syntax for working with strings. So a String S is a finite sequence of characters, and those characters are drawn from an alphabet which we'll call sigma. So since we're usually working with DNA in this class, sigma will often just be the set that contains A, C, G and T. S with vertical bars around it denotes the length of S, the number of characters in S. So in Python, we obtain the length using the built in len function like you see here. We'll use the symbol epsilon to represent the empty string, the string that has length zero. And in Python, in order to represent the empty string, you simply use two quotes, one after the other. Two quotes with nothing in between them. When we want to refer to a particular position within a string, we use an offset. And we use the convention that the leftmost offset, the offset of the leftmost character in the string, is 0. So, in this example, we're getting the character at offset 0 within the string s. That character is A. And here we're getting the character at offset 2, which is 0.2, which is G, as you can see here. The concatenation of two strings consists of the characters of the first string followed by the characters of the second string. So we're just gluing the two strings together, in this example s followed by t. And in Python, we can use the plus operator to concatenate two strings. A substring is just a shorter string that occurs within a longer string. So for example here, we have a longer string s, and we use this bracket notation to get the sub string of s that starts it offset 2, up 2, but not including offset 6. So it gets the length four substring, starting at offset two C C G G. A prefix of a string is the substring of that string that begins at the beginning of it. So for example, this string S, if we take this string, s, and we use bracket notation to take the substring that goes from offset 0 up to but not including offset 6, we get this string, and since it begins at offset 0, we call it a prefix. It's aligned with the left-hand side of the string that it came from. This syntax you see down here where the zero is omitted, and we just say :6 inside the square brackets, is just another way of saying what we said up here. So, if the zero is omitted, there's an implied zero. A suffix is a substring that ends at the end of the longer string. So, for example, if this is our string S and we take the substring from offset 4 up to but not including offset 8, we get the screen GGTT, which is a suffix as you can see here. This is another way of saying the same thing. We put -4:, and then omit what comes after the colon. That's another way of saying we want to start four positions to the left of the end of the string, and then go to the end of the string. So it's another way of saying what we said up here.