题目一:
请编写一个函数,接收一个字符串作为参数,判断该字符串是否是回文字符串(正读和反读都一样),如果是回文字符串则返回True,否则返回False。不区分大小写和空格。
示例输入: "Racecar"
示例输出: True
解析:可以使用双指针法,一个指针从字符串的开头向后移动,另一个指针从字符串的末尾向前移动,比较两个指针指向的字符是否相等,直到两个指针相遇或交叉。
python
def is_palindrome(s): s = s.lower().replace(" ", "") # 将字符串转换为小写并去除空格 left = 0 right = len(s) - 1 while left < right: if s[left] != s[right]: return False left += 1 right -= 1 return True # 测试 print(is_palindrome("Racecar")) # True print(is_palindrome("Python")) # False
题目二:
请编写一个函数,接收一个列表作为参数,返回该列表中的最大值和最小值。
示例输入: [5, 3, 9, 2, 7]
示例输出: 最大值:9,最小值:2
解析:可以使用内置函数max()
和min()
来获取列表中的最大值和最小值。
python
def find_max_min(lst): max_val = max(lst) min_val = min(lst) return max_val, min_val # 测试 result = find_max_min([5, 3, 9, 2, 7]) print("最大值:", result[0]) # 9 print("最小值:", result[1]) # 2
题目三:
请编写一个函数,接收一个整数n作为参数,返回从1到n之间所有奇数的列表。
示例输入: 10
示例输出: [1, 3, 5, 7, 9]
解析:可以使用列表推导式来生成奇数列表。
python
def find_odd_numbers(n): return [x for x in range(1, n+1) if x % 2 != 0] # 测试 print(find_odd_numbers(10)) # [1, 3, 5, 7, 9]
题目四:
请编写一个函数,接收一个字符串作为参数,返回该字符串中的所有数字之和。
示例输入: "abc123def456"
示例输出: 579
解析:可以使用正则表达式来匹配字符串中的数字,并使用sum()
函数计算数字之和。
python
import re def sum_of_numbers(s): numbers = re.findall(r'\d+', s) return sum(map(int, numbers)) # 测试 print(sum_of_numbers("abc123def456")) # 579
题目五:
请编写一个函数,接收一个字符串作为参数,返回该字符串中每个字符出现的次数。
示例输入: "hello"
示例输出: {'h': 1, 'e': 1, 'l': 2, 'o': 1}
解析:可以使用字典来记录每个字符出现的次数。
python
def count_characters(s): char_count = {} for char in s: char_count[char] = char_count.get(char, 0) + 1 return char_count # 测试 print(count_characters("hello")) # {'h': 1, 'e': 1, 'l': 2, 'o': 1}