都说现在中国的ai也发展的怎么怎么好,于是我就测试了一个很小的问题:用python程序实现有2个字符串a,b,如果a字符串里有至少连续3个字符串与b一个字符串里的相同,则是真,a,b字符串长度都都不确定
用文心一言得出的代码如下:
def has_consecutive_triplets_with_other_string(s1, s2): # 获取s2中所有可能的子字符串 substrings = [s2[i:j] for i in range(len(s2)) for j in range(i + 1, len(s2) + 1)] # 遍历s2的所有子字符串 for substring in substrings: # 使用正则表达式查找s1中连续三个相同的子字符串 pattern = rf"({re.escape(substring)}){{{3,}}}" if re.search(pattern, s1): return True # 如果没有找到符合条件的子字符串,返回False return False # 示例 s1 = "hellohellohelloabcabc" s2 = "abc" s3 = "xyz" print(has_consecutive_triplets_with_other_string(s1, s2)) # 输出: True print(has_consecutive_triplets_with_other_string(s1, s3)) # 输出: False
看它一阵操作猛如虎,还有输出,结果却运行不了,自己加了import re还是不行,看代码,你说你都遍历了,直接判断不就行了,为什么要使用正则?算了试试智普清言:
def contains_substring(a, b):
# 遍历字符串b中的每个字符
for char_b in b:
# 检查char_b在a中是否连续出现至少3次
if char_b * 3 in a:
return True
return False
测试函数
test_a = "abcdeeeffg"
test_b = "ef"
contains_substring(test_a, test_b)
直接都没明白意思,直接给个白眼。
下面还是请我们真正的AI,CHATGPT:
def has_common_substring(a, b):
# Check for any common substring of length 3 or more
for i in range(len(a) - 2):
# Extract 3 consecutive characters from string 'a'
substring = a[i:i+3]
# Check if these 3 characters are in string 'b'
if substring in b:
return True
return False
# Example usage:
a = 'abc123'
b = '9abc456'
result = has_common_substring(a, b)
print(result) # Output would be True if there is a common substring of length 3 or more
完美,只要改你的字符串就行了,最后文心一言的只要稍微改下也可以用,自己试试吧?
未经允许不得转载:445IT之家 » python程序实现:a字符串里是否有至少连续3个字符串与b一个字符串里的相同