×
全部 > AI技术 > AI编程 > AI代码生成 > 写一个函数,判断一个字符串是否是回文(忽略大小写和非字母数字字符)

写一个函数,判断一个字符串是否是回文(忽略大小写和非字母数字字符)

DeepSeek V3(Deepseek)

以下是实现该功能的Python函数: ```python import re def is_palindrome(s: str) -> bool: # 移除所有非字母数字字符并转换为小写 cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower() # 检查处理后的字符串是否为回文 return cleaned == cleaned[::-1] # 测试示例 if __name__ == "__main__": test_cases = [ "A man, a plan, a canal: Panama", # True "race a car", # False " ", # True (空字符串或只有空格) "12321", # True "hello world", # False ] for test in test_cases: print(f"'{test}' -> {is_palindrome(test)}") ``` **函数说明:** 1. 使用正则表达式 `re.sub(r'[^a-zA-Z0-9]', '', s)` 移除所有非字母数字字符 2. 使用 `.lower()` 将所有字符转换为小写,实现大小写不敏感 3. 通过字符串切片 `[::-1]` 反转字符串并与原字符串比较 4. 时间复杂度:O(n),空间复杂度:O(n) **测试结果:** ``` 'A man, a plan, a canal: Panama' -> True 'race a car' -> False ' ' -> True '12321' -> True 'hello world' -> False ``` 这个函数能够正确处理包含标点符号、空格和大小写混合的字符串,符合题目要求。

试用评价
用户头像
@孤芳太清绝
灰星 灰星 灰星 灰星 灰星
0.0 2025-09-10
通义千问2.5-Coder-32B(阿里云百炼)

要编写一个函数来判断一个字符串是否是回文(忽略大小写和非字母数字字符),可以按照以下步骤进行: 1. 过滤掉字符串中的非字母数字字符。 2. 将所有字母转换为相同的大小写(通常是小写)。 3. 检查处理后的字符串是否与其反转相同。 下面是一个用Python编写的示例函数: ```python import re def is_palindrome(s: str) -> bool: # 使用正则表达式过滤掉非字母数字字符,并将所有字母转换为小写 filtered_chars = re.findall(r'[a-zA-Z0-9]', s) processed_str = ''.join(filtered_chars).lower() # 检查处理后的字符串是否与其反转相同 return processed_str == processed_str[::-1] # 测试示例 print(is_palindrome("A man, a plan, a canal: Panama")) # 输出: True print(is_palindrome("race a car")) # 输出: False ``` 在这个函数中,我们使用了`re.findall`来提取字符串中的所有字母和数字字符,并使用`join`方法将它们连接成一个新的字符串。然后,我们将这个字符串转换为小写,并检查它是否等于其反转版本。如果是,则该字符串是回文。

试用评价
用户头像
@孤芳太清绝
金星 金星 金星 金星 金星
5.0 2025-09-10
写的挺好
通义千问2.5-Coder-1.5B(阿里云百炼)

当然!以下是一个Python函数,用于判断一个字符串是否是回文(忽略大小写和非字母数字字符): ```python import re def is_palindrome(s): # 使用正则表达式去除非字母数字字符,并转换为小写 cleaned_s = re.sub(r'[^a-zA-Z0-9]', '', s).lower() # 检查清理后的字符串是否等于其反转 return cleaned_s == cleaned_s[::-1] # 示例用法 test_string = "A man, a plan, a canal: Panama" print(is_palindrome(test_string)) # 输出: True ``` 这个函数的工作原理如下: 1. 使用 `re.sub` 函数从字符串中移除所有非字母数字字符,并将结果转换为小写。 2. 检查清理后的字符串是否等于其反转。 你可以通过调用 `is_palindrome` 函数来测试不同的字符串。

试用评价
用户头像
@孤芳太清绝
灰星 灰星 灰星 灰星 灰星
0.0 2025-09-10
模型名称 模型提供商 响应总时长(s) 生成 token 数 首 token 延迟(s) 生成速率(tokens/s)
23.07
345
内容最多
4.19
14.95
13.21
278
0.36
21.04
4.43
响应最快
201
0.3
延迟最小
45.41
速度最快
AI文本生成
38家服务商提供服务
AI深度推理
11家服务商提供服务
AI代码生成
11家服务商提供服务
AI数学模型
10家服务商提供服务