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

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

假设我们有一个电话号码作为字符串。电话号码由数字、空格和/或破折号“-”组成。我们想以某种特定的方式重新格式化电话号码。有一些规则如下:

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

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

  • 然后将最终数字分组,如下:

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

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

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

然后,通过破折号将这些块合并。我们必须找到重新格式化的电话号码。

因此,如果输入为s =“9-6-84102-4 7-8”,则输出将是“968-410-24-78”

要解决这个问题,我们将遵循以下步骤

  • digits:一个空字符串

  • blk:一个空字符串

  • 对于s中的每个字符i,执行以下操作

    • 如果i是数字,则
      • blk:blk连接i
    • 如果blk的大小与3相同,则
      • digits:digits连接blk连接破折号(“-”)

      • blk:一个空字符串

  • 如果blk的大小与0相同,则

    • 返回从索引0到digits-1大小的子字符串
  • 否则,当blk的大小与1相同时,则
    • 返回从索引0到digits-2大小的子字符串连接破折号(“-”)连接digits的倒数第二个字符连接blk
  • 否则,当blk的大小与2相同时,则
    • 返回digits连接blk

示例(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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程