【发布时间】:2022-09-27 13:16:40
【问题描述】:
以下是问题:
接受电话号码作为输入。一个有效的电话号码应该满足 以下约束。
(1) 数字应以下列数字之一开头:6、7、8、9
(2) 号码的长度应恰好为 10 位数字。
(3) 数字中出现的数字不得超过 7 次。
(4) 数字中连续出现的数字不得超过 5 次。
如果第四个条件不是很清楚,那么考虑这个例子: 数字 9888888765 无效,因为数字 8 出现的次数超过 连续5次。
如果电话号码有效,则打印字符串 valid。如果没有,请打印 字符串无效。
这是我现在的实现:
from collections import Counter num=input() temp=Counter([a for a in num]) allowed=[\'6\',\'7\',\'8\',\'9\'] def consec(s): i=0 while i<len(s)-1: count=1 while s[i]==s[i+1]: i+=1 count+=1 if i+1==len(s): return int(count) if len(num)==10: if num[0] in temp: if max(temp.values())<=7: for i in range(len(num)): temp1=consec(num[i]) if(temp1<=5): continue else: print(\'Invalid\') print(\'Success\') else: print(\'Invalid\') else: print(\'Invalid\') else: print(\'Invalid\')但是,我在执行条件 4 时遇到了麻烦。有人可以帮我解决这个问题吗?
-
这回答了你的问题了吗? Count consecutive characters
-
为什么要做
Counter([a for a in num])?为什么不只是Counter(num)?
标签: python