在 Python 中查找重新格式化的电话号码的程序

假设我们有一个号码作为字符串。号码由数字、空格和/或破折号“-”组成。我们想以某种方式重新格式化号码。规则很少 -

  • 删除开头的所有空格和破折号

  • 将从左侧到右侧的数字分组为长度为 3 的块,直到剩下 4 个或更少的数字。

  • 然后将最后的数字分组如下 -

    • 对于 2 位数字:长度为 2 的单个块。

    • 对于 3 位数字:长度为 3 的单个块。

    • 对于 4 位数字:另外两个长度为 2 的块。

然后这些块被破折号击打。我们必须找到重新格式化的号码。

因此,如果输入类似于 s = "9-6-84102-4 7-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

以上是 在 Python 中查找重新格式化的电话号码的程序 的全部内容, 来源链接: utcz.com/z/327523.html

回到顶部