第一题:
题目:设计一个函数,可以传入一个或多个单词的字符串,并返回该字符串,但所有五个或更多字母的单词都前后颠倒。
解答:
1.代码:
def long_words(text): #定义函数
words = text.split() #将字符串按空格分割成列表
i = [] #设置空列表
for word in words:
if len(word) >= 5:
i.append(word[::-1]) #使用切片
else:
i.append(word)
return " ".join(i) #合并列表
#示例
string = "Hello Everybody!!!"
output = long_words(string)
print(output)
2.运行:
第二题:
题目:给定一个字符串,判断该字符事是否是回文
回文是指顺读或倒读都一样的字、诗句等,如aabaa、abacaba是回文,aaabaaaa则不是回文
解答:
1.代码
def y(num): #定义函数
num = num.lower().replace(" ", "")
return num == num[::-1]
#示例
string1 = 'aaabbb'
print(y(string1))
string2 = 'ababa'
print(y(string2))
2.运行
第三题:
题目:某个人进入如下一个棋盘中,要求从左上角开始走,
最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
解答:
1.代码
m, n = 5, 8
dp = [[0] * n for _ in range(m)]
dp[0][0] = 1
for i in range(m):
for j in range(n):
if i == 0 and j == 0:
continue
if i == 0:
dp[i][j] = dp[i][j - 1]
elif j == 0:
dp[i][j] = dp[i - 1][j]
else:
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
print(dp[m - 1][n - 1])
2.运行
第四题:
题目:存在一个列表,列表的元素都是从1~N的元素组成现在有个元素成对出现了,找出这个成对出现的元素。
解答:
1.代码
2.运行
第五题:
题目:存在一个列表,该列表中的元素都是成对出现,现在有一个不是成对出现,找出它。
解答:
1.代码
2.运行
第六题:
题目:实现汉诺塔A-C的步骤
解答:
1.代码
def hanoi(n, source, target, auxiliary): #定义函数
if n == 1: #遍历循环
print(f"将圆盘从 {source} 移到 {target}")
return
hanoi(n - 1, source, auxiliary, target)
print(f"将圆盘从 {source} 移到 {target}")
hanoi(n - 1, auxiliary, target, source)
# 示例,假设初始有3个圆盘在A柱,要移到C柱,B柱作为辅助
n = 3
hanoi(n, 'A', 'C', 'B')