在 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