运城推广型网站建设专业做网站的公司
写给自己看。。。。。持续更新
一、编程解法总结
1、判断输入的密码是否正确,比如要求长度大于8,包含至少一个大写,一个小写,一个特殊字符;
import re
def is_password_valid(password):# 检查密码长度是否大于8if len(password) <= 8:return False, "密码长度必须大于8"# 检查是否包含至少一个大写字母if not re.search(r'[A-Z]', password):return False, "密码必须包含至少一个大写字母"# 检查是否包含至少一个小写字母if not re.search(r'[a-z]', password):return False, "密码必须包含至少一个小写字母"# 检查是否包含至少一个特殊字符(例如:!@#$%^&*()_+等)if not re.search(r'[!@#$%^&*()_+\-=\[\]{};:"\\|,.<>/?]', password):return False, "密码必须包含至少一个特殊字符"# 如果所有条件都满足,返回 Truereturn True, "密码有效"
# 测试密码
password = input("请输入密码:")
is_valid, message = is_password_valid(password)
if is_valid:print("密码符合要求!")
else:print(f"密码不符合要求:{message}")
2、最长公共子序列(二)
描述
给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列
数据范围:0≤∣str1∣,∣str2∣≤20000
要求:空间复杂度 O(n2),时间复杂度 O(n2)
输入:
"1A2C3D4B56","B1D23A456A"
返回值:
"123456"
def longest_common_substring(str1, str2):# 获取字符串长度len1, len2 = len(str1), len(str2)# 初始化 DP 数组和变量dp = [[0] * (len2 + 1) for _ in range(len1 + 1)]max_len = 0 # 最长公共子串的长度end_pos = 0 # 最长公共子串在 str1 中的结束位置# 填充 DP 数组for i in range(1, len1 + 1):for j in range(1, len2 + 1):if str1[i - 1] == str2[j - 1]:dp[i][j] = dp[i - 1][j - 1] + 1if dp[i][j] > max_len:max_len = dp[i][j]end_pos = i