码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode-604-Design Compressed String Iterator]

时间:2017-06-11 13:01:56      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:remember   mask   please   reset   otherwise   ret   public   tor   pad   

Design and implement a data structure for a compressed string iterator. It should support the following operations: next and hasNext.

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.

next() - if the original string still has uncompressed characters, return the next letter; Otherwise return a white space.
hasNext() - Judge whether there is any letter needs to be uncompressed.

Note:
Please remember to RESET your class variables declared in StringIterator, as static/class variables are persisted across multiple test cases. Please see here for more details.

Example:

StringIterator iterator = new StringIterator("L1e2t1C1o1d1e1");

iterator.next(); // return ‘L‘
iterator.next(); // return ‘e‘
iterator.next(); // return ‘e‘
iterator.next(); // return ‘t‘
iterator.next(); // return ‘C‘
iterator.next(); // return ‘o‘
iterator.next(); // return ‘d‘
iterator.hasNext(); // return true
iterator.next(); // return ‘e‘
iterator.hasNext(); // return false
iterator.next(); // return ‘ ‘

 

思路:

需要注意的是,数字可能是大于10的也就是说不一定是一位数。。。

参考了大神的代码。。

class StringIterator {
  string a;
  size_t i = 0, c = 0;
  char ch;
public:
  StringIterator(string a) {
    this->a = a;
  }

  char next() {
    if (c)
      return c--, ch;
    if (i >= a.size())
      return  ;
    ch = a[i++];
    while (i < a.size() && isdigit(a[i]))
      c = c*10+a[i++]-0;
    c--;
    return ch;
  }

  bool hasNext() {
    return c || i < a.size();
  }
};

参考:

https://leetcode.com/maskray/

[leetcode-604-Design Compressed String Iterator]

标签:remember   mask   please   reset   otherwise   ret   public   tor   pad   

原文地址:http://www.cnblogs.com/hellowooorld/p/6984798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!