py题解(全题解唯一)
2024-10-09 21:32:26
发布于:湖南
23阅读
0回复
0点赞
错了6次qwq
我们可以用py的re模块验证IP地址和端口号的格式。
然后用defaultdict来存储已验证的IP地址和端口号,记录其添加的顺序。
代码如下(加了注释更方便看懂)
py code:
import re
from collections import defaultdict
# 定义一个字典来存储已验证的IP地址和端口号
vis = defaultdict(int)
def check(s):
# 使用正则表达式验证IP地址和端口号的格式
pattern = r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):(\d{1,5})$"
match = re.match(pattern, s)
if not match:
return False
# 将匹配的组转换为整数
a, b, c, d, e = map(int, match.groups())
# 验证每个部分的值是否在有效范围内
if not (0 <= a <= 255 and 0 <= b <= 255 and 0 <= c <= 255 and 0 <= d <= 255 and 0 <= e <= 65535):
return False
# 重新格式化IP地址和端口号
s2 = f"{a}.{b}.{c}.{d}:{e}"
# 比较原始字符串和重新格式化后的字符串
return s == s2
def main():
n = int(input())
for i in range(1, n + 1):
op, ad = input().split()
t = ad
if op[0] == 'S':
if not check(ad):
print("ERR")
elif t in vis:
print("FAIL")
else:
print("OK")
vis[t] = i
else:
if not check(ad):
print("ERR")
elif t not in vis:
print("FAIL")
else:
print(vis[t])
if __name__ == "__main__":
main()
全部评论 1
不是 这么多正则表达式大佬
2024-10-12 来自 广东
1(什
2024-10-13 来自 湖南
0
有帮助,赞一个