LeetCode 604. 迭代压缩字符串
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 604. 迭代压缩字符串
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
對(duì)于一個(gè)壓縮字符串,設(shè)計(jì)一個(gè)數(shù)據(jù)結(jié)構(gòu),它支持如下兩種操作: next 和 hasNext。
給定的壓縮字符串格式為:每個(gè)字母后面緊跟一個(gè)正整數(shù),這個(gè)整數(shù)表示該字母在解壓后的字符串里連續(xù)出現(xiàn)的次數(shù)。
- next() - 如果壓縮字符串仍然有字母未被解壓,則返回下一個(gè)字母,否則返回一個(gè)空格。
- hasNext() - 判斷是否還有字母仍然沒(méi)被解壓。
注意:
請(qǐng)記得將你的類在 StringIterator 中 初始化 ,因?yàn)殪o態(tài)變量或類變量在多組測(cè)試數(shù)據(jù)中不會(huì)被自動(dòng)清空。更多細(xì)節(jié)請(qǐng)?jiān)L問(wèn) 這里 。
2. 解題
class StringIterator {string s;char cur;int count = 0, idx = 0; public:StringIterator(string compressedString) {s = compressedString;}char next() {if(!hasNext()) return ' ';if(count>0){count--;return cur;}else//count=0{cur = s[idx];idx++;while(idx < s.size() && isdigit(s[idx]))count = count*10+(s[idx++]-'0');count--;//用掉了一個(gè)return cur;}}bool hasNext() {return idx < s.size()||count;} };20 ms 13.3 MB
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 604. 迭代压缩字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 1430. 判断给定的
- 下一篇: LeetCode 68. 文本左右对齐(