0604:迭代压缩字符串
目录
题目
设计并实现一个迭代压缩字符串的数据结构。给定的压缩字符串的形式是,每个字母后面紧跟一个正整数,表示该字母在原始未压缩字符串中出现的次数。
设计一个数据结构,它支持如下两种操作: next 和 hasNext。
next()- 如果原始字符串中仍有未压缩字符,则返回下一个字符,否则返回空格。hasNext()- 如果原始字符串中存在未压缩的的字母,则返回true,否则返回false。
示例 1:
输入:
["StringIterator", "next", "next", "next", "next", "next", "next", "hasNext", "next", "hasNext"]
[["L1e2t1C1o1d1e1"], [], [], [], [], [], [], [], [], []]
输出:
[null, "L", "e", "e", "t", "C", "o", true, "d", true]
解释:
StringIterator stringIterator = new StringIterator("L1e2t1C1o1d1e1");
stringIterator.next(); // 返回 "L"
stringIterator.next(); // 返回 "e"
stringIterator.next(); // 返回 "e"
stringIterator.next(); // 返回 "t"
stringIterator.next(); // 返回 "C"
stringIterator.next(); // 返回 "o"
stringIterator.hasNext(); // 返回 True
stringIterator.next(); // 返回 "d"
stringIterator.hasNext(); // 返回 True
提示:
1 <= compressedString.length <= 1000compressedString由小写字母、大写字母和数字组成。- 在
compressedString中,单个字符的重复次数在[1,10 ^9]范围内。 next和hasNext的操作数最多为100。
分析
正则提取出 <字符,个数> 对放在队列中,模拟取出即可。
解答
|
|
48 ms