gpt4 book ai didi

python - 如何添加验证特征/规则?

转载 作者:行者123 更新时间:2023-12-01 04:11:31 35 4
gpt4 key购买 nike

我尝试了 hacerrank 的 slove 练习 Click我不知道如何添加这些规则:
► 它可以包含 4 个一组的数字,并用一个连字符“-”分隔。
► 不得有 4 个或更多连续重复数字。

这是我的代码:

how_many=1 #This version for tests, Here will be input() 
for i in range(how_many):
string=input()
formated_str=''.join(string.split('-', 4))
if (char.isdigit() for char in formated_str) and len(formated_str)==16 and (formated_str[0]=='4' or formated_str[0]=='5' or formated_str[0]=='6'):
print("Valid")
else:
print("Invalid")

问题:

我不知道 formated_str=''.join(string.split('-', 4)) 会像他们想要的那样工作,我的意思是“► 它可能有数字4 个一组,由一个连字符“-”分隔。以及如何实现第二条规则?

最佳答案

下面的函数首先删除代码字符串中的 -,然后检查数字重复。正则表达式为以下 r"\d*(\d)\1{3,}\d*"。如果正则表达式匹配,则代码无效并且函数返回 False。否则,该函数将拆分原始代码字符串,然后检查每个子字符串的长度。

import re

string = "2134-4444-4412-3241"
string1 = "2134-4344-4412-3241"
string2 = "2134-4342-4412-3241"

def isValid(aString):
pattern = r"\d*(\d)\1{3,}\d*"
isValid = True

rep_string = aString.replace('-', "")
print(rep_string)
if (not re.search(pattern, rep_string)):
splitted = string.split('-')
for split in splitted:
if (len(split)!=4):
return(False)
return(isValid)
else:
return(False)

print(isValid(string))
print(isValid(string1))
print(isValid(string2))

希望这个解决方案能够帮助您。这段代码将为您提供以下输出:

False
False
True

关于python - 如何添加验证特征/规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34872148/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com