笔试真题
Posted jetblock
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔试真题相关的知识,希望对你有一定的参考价值。
1.构造回文
题目:
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。
思路:利用回文的性质,利用动态规划求原字符串和其反串的最大公共子序列。
2.筛选法求素数
N = int(input())
NList = [i for i in range(2,N+1)]
PrimeList = []
for i, num in enumerate(NList):
if num == 0:
continue
for j in range(i+1, len(NList)):
if NList[j]==0:
continue
elif NList[j]%NList[i]==0:
NList[j] = 0
for i in NList:
if i != 0:
PrimeList.append(i)
print(PrimeList)
算法举例
- 单源最短路径中的Dijkstra算法 ---- 贪婪算法
- 最小生成树的Prim算法 ---- 贪婪算法
- 最小生成树的Kruskal算法 ---- 贪婪算法
- 计算每对顶点最短路径的Floyd-Warshall算法 ---- 动态规划
- 字符串匹配中的KMP算法 ---- 动态规划
动态规划算法的基本步骤
- 根据计算最优值得到的信息,构造最优解
- 递归的定义最优解
- 找出最优解的性质,并刻画其结构特征
- 自底向上的方式填表计算出最优值
以上是关于笔试真题的主要内容,如果未能解决你的问题,请参考以下文章