在 Python 中查找重新格式化的电话号码的程序
假设我们有一个号码作为字符串。号码由数字、空格和/或破折号“-”组成。我们想以某种方式重新格式化号码。规则很少-
删除开头的所有空格和破折号
将从左侧到右侧的数字分组为长度为3的块,直到剩下4个或更少的数字。
然后将最后的数字分组如下-
对于2位数字:长度为2的单个块。
对于3位数字:长度为3的单个块。
对于4位数字:另外两个长度为2的块。
然后这些块被破折号击打。我们必须找到重新格式化的号码。
因此,如果输入类似于s="9-6-84102-47-8",那么输出将是“968-410-24-78”
示例(Python)
让我们看看以下实现以获得更好的理解-
def solve(s):
digits = ""
blk = ""
for i in s:
if i.isnumeric():
blk += i
if len(blk) == 3:
digits += blk+"-"
blk = ""
if len(blk) == 0:
return digits[:-1]
elif len(blk) == 1:
return digits[:-2]+"-"+digits[-2]+blk
elif len(blk) == 2:
return digits+blk
s = "9-6-84102-4 7-8"
print(solve(s))输入
"9-6-84102-4 7-8"输出结果
968-410-24-78