📅  最后修改于: 2023-12-03 14:58:22.004000             🧑  作者: Mango
本文将介绍 GATE CS 2021设置2的第25道问题,并提供相应解答的编码示例。
问题25要求实现一个函数,该函数接收一个字符串数组作为输入,返回一个新的字符串数组。原始字符串数组中的每个字符串表示一个IPv4地址,并且按照从高到低的顺序排列。新的字符串数组应该只包含与给定条件匹配的IPv4地址。
函数签名如下:
def process_ip_array(ip: List[str]) -> List[str]:
pass
ip
,其中每个字符串代表一个IPv4地址。输入:
ip = ["192.168.0.1", "192.168.10.2", "192.169.0.3", "200.200.3.4"]
输出:
["192.168.0.1", "192.168.10.2"]
问题的关键在于筛选出与给定条件匹配的IPv4地址。为了解决这个问题,我们可以按照以下步骤进行处理:
result
,用于存储满足条件的IPv4地址。ip
数组中的每个IPv4地址。split()
函数将其拆分为四个整数字段。result
列表中。result
列表将包含满足条件的IPv4地址,返回result
作为结果。以下示例代码展示了如何解决问题25:
from typing import List
def process_ip_array(ip: List[str]) -> List[str]:
result = []
for i in ip:
octets = i.split(".")
valid = True
for octet in octets:
if int(octet) > 255:
valid = False
break
if valid:
result.append(i)
return result
在上述示例代码中,我们定义了process_ip_array()
函数,根据解题思路的步骤实现了相应的逻辑。输入的IPv4地址通过split()
函数拆分为整数字段,并通过遍历逐个检查每个字段是否满足条件。如果满足条件,则将该IPv4地址添加到result
列表中,并最终返回result
作为结果。
n
,对于每个IPv4地址,需要花费常数时间进行拆分和检查,所以总体时间复杂度为O(n)
。O(1)
。以上就是问题25的解答,希望对您有帮助!