LC: 604. Design Compressed String Iterator
604. Design Compressed String Iterator
Design and implement a data structure for a compressed string iterator. The given compressed string will be in the form of each letter followed by a positive integer representing the number of this letter existing in the original uncompressed string.
Implement the StringIterator class:
next()Returns the next character if the original string still has uncompressed characters, otherwise returns a white space.hasNext()Returns true if there is any letter needs to be uncompressed in the original string, otherwise returnsfalse.
Example 1:
Input
["StringIterator", "next", "next", "next", "next", "next", "next", "hasNext", "next", "hasNext"]
[["L1e2t1C1o1d1e1"], [], [], [], [], [], [], [], [], []]
Output
[null, "L", "e", "e", "t", "C", "o", true, "d", true]
Explanation
StringIterator stringIterator = new StringIterator("L1e2t1C1o1d1e1");
stringIterator.next(); // return "L"
stringIterator.next(); // return "e"
stringIterator.next(); // return "e"
stringIterator.next(); // return "t"
stringIterator.next(); // return "C"
stringIterator.next(); // return "o"
stringIterator.hasNext(); // return True
stringIterator.next(); // return "d"
stringIterator.hasNext(); // return TrueConstraints:
1 <= compressedString.length <= 1000compressedStringconsists of lower-case an upper-case English letters and digits.The number of a single character repetitions in
compressedStringis in the range[1, 10^9]At most
100calls will be made tonextandhasNext.
The Essence: Jeder Buchstabe der Zeichenfolge hat auf der rechten Seite eine Zahl. Die Zahl kann zwischen 1 und 10^9 liegen. Aus diesem Grund müssen wir zuerst den digitalen Wert dieser Zahl aus ihrer Zeichenfolge berechnen.
Details:
Nachdem wir die Zahl geparst haben, können wir die Zahl bei jedem Aufruf der Methode next() dekrementieren.
Solution(s): Eine einfache Implementierung findet der Problemlöser bei unserem PR.
Default Code:
Last updated