Buacm 2


Published on

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Buacm 2

  2. 2. Page 1 of 6 String (Java)  Frequently Asked Questions (FAQ) 1. What is String?  A string is a sequence of characters treated as a single unit. A string may include letters, digits and various special characters, such as +, -, *, / and $. A string is an object of class String. [For more info read Chapter 29 of Java How to Program] 2. Is String a primitive data type in Java?  No String is not a primitive data type in Java, even though it is one of the most extensively used object. Strings in Java are instances of String class. [http://docs.oracle.com/javase/tutorial/java/data/strings.html] 3. Is the + operator overloaded?  Java does not have operator overloading, but string concatenation is a special case. When the + operator is applied to a String, the two values are appended as a new String. If you use the + operator with a String and a primitive value, such as an int or long, the Java interpreter implicitly converts the primitive value a string representation and concatenates them. 4. How can you say the + operator is not overloaded in Java!  The plus operator for Java strings is a limited exceptional case that is practically the same as operator overloading. It’s a fine distinction but using + to append object contents is not a general case in Java, it only applies to String objects. An equivalent append operation may be meaningful and useful for data storage types but does not have a general application and is not implemented in Java. // Compiler error: "operator + cannot be applied to java.util.Vector" // Vector vector = new Vector() + new Vector();Raduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)
  3. 3. Page 2 of 6  Classes that you will need for ACM 1. String (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html) 2. StringTokenizer (http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html) 3. StringBuffer (docs.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html) 4. Character (docs.oracle.com/javase/6/docs/api/java/lang/Character.html) 5. Matcher (http://docs.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html) 6. Pattern (http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html) // you have to learn some basic methods provided by these classes like trim(), length(), toUpperCase() etc  The following topics will be needed for ACM 1. String Matching (Knuth Morris Pratt (KMP), Rabin – Karp, Aho – Corasick, Boyer – Moore, Suffix Tree/Trie/Array, Finite State Automata) 2. Regular Expressions 3. String Permutation (SEPA) 4. Determine Subsequence 5. Determine Anagram 6. Determine Palindrome (check palindrome or make palindrome [DP]) 7. Longest common Subsequence (DP) 8. Longest common Substring and Longest repeated Substring 9. Longest common prefix 10. Shortest common Superstring 11. String Alignment (Edit/Levenshetin Distance) (DP) 12. Hashing 13. Burrows wheeler transform 14. Radix Tree 15. Suffix automatonRaduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)
  4. 4. Page 3 of 6  Some Common Definitions 1. Anagram: A word or phrase formed by reordering the letters of another word or phrase, such as satin to stain. 2. Permutation: You are given two strings A and B. B will be said the permutation of A, if you can make B from A by re-arranging some (or none) characters. aabc is a permutation of caba 3. Substring: A substring (or factor) of a string T = t1…..tn is a string ̂ = t1+i…..tm+i , where 0 i and m + i n . A substring of a string is a prefix of a suffix of the string, and equivalently a suffix of a prefix. If ̂ is a substring of T, it is also a subsequence, which is a more general concept. Given a pattern P, you can find its occurrences in a string T 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. Example: The string ana is equal to substrings (and subsequences) of banana at two different offsets: banana ||||| ana|| ||| ana Substrings are also called subwords (in America) or factors (in Europe). It is also a subsequence 4. Subsequence: You are given two strings A and B. B will be said the subsequence of A, if you can make B from A by deleting some (or none) characters. For example, ABD is a subsequence of ABCDEF. Where, order of the elements is preserved. A B C D E F A B C D E F 5. Prefix: A prefix of a string T = t1…..tn is a string ̂ = t1…..tm, where m n. A proper prefix of a string is not equal to the string itself (0 ); some sources in addition restrict a proper prefix to be non-empty (0 < m < n). A prefix can be seen as a special case of a substring. Example: The string ban is equal to a prefix (and substring and subsequence) of the string banana: banana ||| BanRaduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)
  5. 5. Page 4 of 6 6. Suffix: A suffix of a string T = t1…..tn is a string ̂ = tn – m + 1…..tm where m n. A proper suffix of a string is not equal to the string itself (0 ); again, a more restricted interpretation is that it is also not empty (0 < m < n). A suffix can be seen as a special case of a substring. Example: The string nana is equal to a suffix (and substring and subsequence) of the string banana: banana |||| nana 7. Border: A border is suffix and prefix of the same string, e.g. "bab" is a border of "babab".  Different Characters: Uppercase Letters: A, B, C, D, E Lowercase Letters: a, b, c, d, e Digits: 0, 1, 2, 3, 4 Punctuation: comma (,), full stop/period (.) Control/non-printing/escape characters: carriage return, tab, newlineRaduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)
  6. 6. Page 5 of 6  Sample I/O // Test Case Style // Sentinel Style 2 Mili Runway Micro Tintin Nano Stop (Sentinel) // EOF Style CSE // Mixed ECE 3 EEE X 2 null (End Of File) Y 3 Z 5 // Blank Line Style Apple Microsoft Yahoo (Blank Line) // Reading A String after Reading an Integer Problem 1 Ki holo /* nextInt() does not change the line so after reading 1; when we hit enter causes the endOfLine (rn). This EOL is read by nextLine() and that’s why “Ki holo” never read by nextLine() */ [http://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html]Raduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)
  7. 7. Page 6 of 6 Important Links 1. http://www.leepoint.net/notes-java/data/expressions/22compareobjects.html Resources: 1. http://en.wikipedia.org/wiki/Wiki 2. http://www.codestyle.org 3. http://www.thefreedictionary.comRaduanul Islam (10101024) & S. Mahbub – Uz – Zaman (09301004)