Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... ·...
Transcript of Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... ·...
![Page 1: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/1.jpg)
Mathematical String Notation
26 April 2013 OSU CSE 1
![Page 2: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/2.jpg)
String Theory
• A mathematical model that we will use often is that of mathematical strings
• A string can be thought of as a series of zero of more entries of any other mathematical type, say, T – T is called the entry type – We will call this math type string of T
26 April 2013 OSU CSE 2
![Page 3: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/3.jpg)
String ≠ string
• String is a programming type in Java, and string is a mathematical type (often used to model program types)
• Since we call the mathematical model of the Java primitive type char by the name character, we have: type String is modeled by string of character
26 April 2013 OSU CSE 3
![Page 4: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/4.jpg)
Math Notation for Strings
• The following notations are used when we write mathematics (e.g., in contract specifications) involving strings
• Notice two important features of strings: – There may be duplicate entries (in fact, there
may be arbitrarily many of a given entry value) – The order of the entries is important
26 April 2013 OSU CSE 4
![Page 5: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/5.jpg)
The Empty String
• The empty string, a string with no entries at all, is denoted by < > or by empty_string
26 April 2013 OSU CSE 5
![Page 6: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/6.jpg)
Denoting a Specific String
• A particular string can be described by listing its entries between < and > separated by commas
• Examples: < 1, 2, 3, 2 >
< 'G', 'o' >
< >
26 April 2013 OSU CSE 6
![Page 7: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/7.jpg)
Denoting a Specific String
• A particular string can be described by listing its entries between < and > separated by commas
• Examples: < 1, 2, 3, 2 >
< 'G', 'o' >
< >
26 April 2013 OSU CSE 7
A string of integer value whose entries are the integer
values 1, 2, 3, and 2.
![Page 8: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/8.jpg)
Denoting a Specific String
• A particular string can be described by listing its entries between < and > separated by commas
• Examples: < 1, 2, 3, 2 >
< 'G', 'o' >
< >
26 April 2013 OSU CSE 8
A string of character value whose entries are the character
values 'G' and 'o'.
![Page 9: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/9.jpg)
Denoting a Specific String
• A particular string can be described by listing its entries between < and > separated by commas
• Examples: < 1, 2, 3, 2 >
< 'G', 'o' >
< >
26 April 2013 OSU CSE 9
We may also use the special notation "Go" for the same
string of character value.
![Page 10: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/10.jpg)
Denoting a Specific String
• A particular string can be described by listing its entries between < and > separated by commas
• Examples: < 1, 2, 3, 2 >
< 'G', 'o' >
< >
26 April 2013 OSU CSE 10
Now it can be seen that this notation for empty_string is a special case of the string literal notation.
![Page 11: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/11.jpg)
Concatenation
• The concatenation of strings s and t, a string consisting of the entries of s followed by the entries of t, is denoted by s * t
• Examples: < 1, 2 > * < 3, 2 > = < 1, 2, 3, 2 >
< 'G', 'o' > * < > = < 'G', 'o' >
< > * < 5, 2, 13 > = <5, 2, 13 >
< > * < > = < >
26 April 2013 OSU CSE 11
![Page 12: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/12.jpg)
Concatenation
• The concatenation of strings s and t, a string consisting of the entries of s followed by the entries of t, is denoted by s * t
• Examples: < 1, 2 > * < 3, 2 > = < 1, 2, 3, 2 >
< 'G', 'o' > * < > = < 'G', 'o' >
< > * < 5, 2, 13 > = <5, 2, 13 >
< > * < > = < >
26 April 2013 OSU CSE 12
As before, we may use the special notation for a string of character value and say:
"Go" * "" = "Go"
![Page 13: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/13.jpg)
Concatenation
• The concatenation of strings s and t, a string consisting of the entries of s followed by the entries of t, is denoted by s * t
• Examples: < 1, 2 > * < 3, 2 > = < 1, 2, 3, 2 >
< 'G', 'o' > * < > = < 'G', 'o' >
< > * < 5, 2, 13 > = <5, 2, 13 >
< > * < > = < >
26 April 2013 OSU CSE 13
The concatenation of Java String values uses + instead!
![Page 14: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/14.jpg)
Substring, Prefix, Suffix
• We say s is substring of t iff the entries of s appear consecutively in t
• We say s is prefix of t iff the entries of s appear consecutively at the beginning of t
• We say s is suffix of t iff the entries of s appear consecutively at the end of t
26 April 2013 OSU CSE 14
![Page 15: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/15.jpg)
Substring, Prefix, Suffix
• We say s is substring of t iff the entries of s appear consecutively in t
• We say s is prefix of t iff the entries of s appear consecutively at the beginning of t
• We say s is suffix of t iff the entries of s appear consecutively at the end of t
26 April 2013 OSU CSE 15
We say is not ... for the negation of each.
![Page 16: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/16.jpg)
Length
• The length of a string s, i.e., the number of entries in s, is denoted by |s|
• Examples: |< 1, 2, 3, 2 >| = 4
|< 'G', 'o' >| = 2
|< >| = 0
26 April 2013 OSU CSE 16
![Page 17: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/17.jpg)
Concise Notation for Substrings
• The substring of s starting at position i (inclusive) and ending at position j (exclusive) is denoted by s[i, j)
26 April 2013 OSU CSE 17
![Page 18: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/18.jpg)
Concise Notation for Substrings
• The substring of s starting at position i (inclusive) and ending at position j (exclusive) is denoted by s[i, j)
26 April 2013 OSU CSE 18
The position k of an entry in a string is a number satisfying
0 <= k < |s|.
![Page 19: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/19.jpg)
Concise Notation for Substrings
• The substring of s starting at position i (inclusive) and ending at position j (exclusive) is denoted by s[i, j)
26 April 2013 OSU CSE 19
This notation is well-defined whenever 0 <= i <= j <= |s|;
for all other cases, the designated substring may be defined to be
<> (though we will avoid using this).
![Page 20: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/20.jpg)
Concise Notation for Substrings
• The substring of s starting at position i (inclusive) and ending at position j (exclusive) is denoted by s[i, j)
• Examples with s = "GoBucks": s[0, |s|) = "GoBucks"
s[2, |s|-1) = "Buck"
s[1, 1) = ""
s[2, 3) * s[5, 7) = "Bks"
26 April 2013 OSU CSE 20
![Page 21: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/21.jpg)
Reverse
• The reverse of a string s, i.e., the string with the same entries as s but in the opposite order, is denoted by rev(s)
• Examples: rev(< 1, 2, 3, 2 >) = < 2, 3, 2, 1 > rev(< 'G', 'o' >) = < 'o', 'G' > rev(< >) = < >
26 April 2013 OSU CSE 21
![Page 22: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/22.jpg)
Permutations
• The question whether strings s1 and s2 are permutations, i.e., whether they are simply reorderings of one another, is denoted by perms(s1, s2)
• Examples: perms(< 1, 2, 3 >, < 3, 1, 2 >) not perms(< 2, 2, 1 >, < 2, 1 >) perms(< >, < >)
26 April 2013 OSU CSE 22
![Page 23: Mathematical String Notationweb.cse.ohio-state.edu/software/2221/web-sw1/extras/slides/20... · String Theory • A mathematical model that we will use often is that of mathematical](https://reader033.fdocuments.net/reader033/viewer/2022051801/5ae0135e7f8b9a1c248cc0f5/html5/thumbnails/23.jpg)
Occurence Count
• The occurence count of an entry x in a string s, i.e., the number of times x appears as an entry in s, is denoted by count(s, x)
• Examples: count(< 2, 2, 2, 1 >, 2) = 3 count(< 2, 2, 2, 1 >, 4) = 0 count(< 'G', 'o' >, 'G') = 1 count(< >, 13) = 0
26 April 2013 OSU CSE 23