分类:字符串
知识点:
-
字符串是否由数字组成 my_str.isdigit()
-
字符串填充 不足8位左侧填充0 my_str.zfill(8)
题目来自【牛客】
import sys
def classify_ip(ip_mask):
ip_class, is_private_ip, mask_class = 'ignore_ip', 0, 'valid_mask'
# 解析IP地址和子网掩码
ip, mask = ip_mask.split('~')
ip_parts = ip.split('.')
mask_parts = mask.split('.')
# 验证IP地址是否合法
if len(ip_parts) != 4:
ip_class = 'error_ip'
for part in ip_parts:
if not part.isdigit() or int(part) 255:
ip_class = 'error_ip'
# 验证子网掩码是否合法
if len(mask_parts) != 4:
mask_class = 'error_mask'
for part in mask_parts:
if not part.isdigit() or int(part) 255:
mask_class = 'error_mask'
# zfill() 是字符串(str)对象的一个方法,用于在字符串的左侧填充零zero,直到字符串达到指定的长度。
mask_binary = ''.join([bin(int(part))[2:].zfill(8) for part in mask_parts])
# rfind() 是 Python 中字符串(str)对象的一个方法,用于在字符串中从右向左查找子字符串,
# 并返回子字符串的最后一个匹配的索引。如果找不到子字符串,则返回 -1。
# pri服务器托管nt(mask_binary)
if '01' in mask_binary or mask_binary.count('1') == 0 or mask_服务器托管binary.count('0') == 0:
mask_class = 'error_mask'
# IP地址分类
if ip_class != 'error_ip':
# 判断是否为私有IP
if int(ip_parts[0]) == 10 or (int(ip_parts[0]) == 172 and 16
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
322 零钱对兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amoun服务器托管t ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限…