在Python中实现运行长度字符串解码迭代器类的程序
假设我们想定义一个迭代器类,它用一个运行长度编码的小写字符串比如s来构造,这个迭代器有两个函数,它们是-
next()this找到迭代器中的下一个元素
hasnext()这会检查下一个元素是否存在
所以,如果输入像s="2b1a",那么用s构造一个对象,然后调用next(),hasnext(),next(),next(),hasnext(),那么输出将是"b",True,"b","a",False。
示例
让我们看看以下实现以获得更好的理解-
class RunLengthIterator:
def __init__(self, s):
self.output = []
num = ""
for i in s:
if i.isalpha():
self.output.append(int(num))
self.output.append(i)
num = ""
else:
num += i
def next(self):
if self.hasnext():
count = self.output[0]
letter = self.output[1]
count -= 1
if count > 0:
self.output[0] -= 1
else:
self.output= self.output[2:]
return letter
def hasnext(self):
if len(self.output) != 0:
return True
return False
s = "2b1a"
obj = RunLengthIterator(s)
print(obj.next())
print(obj.hasnext())
print(obj.next())
print(obj.next())
print(obj.hasnext())输入
"2b1a" obj = RunLengthIterator(s) obj.next() obj.hasnext() obj.next() obj.next() obj.hasnext()输出结果
b True b a False
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短