一,检查回文日期
自我感觉题目给的回文日期的定义有些抽象,这里直接给出题目

解题的关键函数:
digits = date_in_string.replace("/", "")
pal_dmy = digits == digits[::-1]
if not pal_dmy:
return False
dd, mm, yyyy = date_in_string.split("/")
digits_mdy = f"{mm}{dd}{yyyy}"
pal_mdy = digits_mdy == digits_mdy[::-1]
其实这个解题代码是很简单的,但是长时间没敲,有点忘了。
二,最大间隔元素列表
题目要求:
编写程序确定一个已排序整数列表的最大间隔。
间隔是指有序整数列表中两个连续元素之间的差值。
例如,在列表[1, 6, 9, 16]中,1 和6 之间的间隔是5 ,6 和9 之间的间隔是3 ,9 和16 之间的间隔是7。
因此,给定列表中的最大间隔是7。
解题的关键代码:
return max(b - a for a, b in zip(lst_sorted, lst_sorted[1:]))
看不太懂的就是zip,就是将两个数组相同部分的元素打包起来。

三,字符串共享字母
题目要求我们找到两个字符串中相同的字母,并且将他们按照字母表中的循序输出出来
解题代码:
set1, set2 = set(word1.lower()), set(word2.lower())
return ''.join(sorted(set1 & set2))
代码没什么,主要介绍一下思路,通过转化成集合然后求交集,即可得到相同的字母,然后使用sort进行排序。
四,合并列表并排序
解题代码:
merged = first_list + second_list
if not first_list:
return sorted(merged)
ascending = first_list[0] <= first_list[-1]
return sorted(merged, reverse=not ascending)
先将两个列表加在一起然后判断第一个列表的排序方式,最后进行排序。
这里需要注意一下sorted的第二个参数,如果是1的话就是降序,如果是0的话就是升序。
五,递归检查回文
解题代码:
def is_string_palindrome(string):
if len(string) <= 1:
return True
if string[0] != string[-1]:
return False
return is_string_palindrome(string[1:-1])
user_input = input()
print(is_string_palindrome(user_input.lower()))
注重对解题思路的理解。就是检测最后一个和第一个是不是相等的,然后一层一层的判断,最终得出答案。