📅  最后修改于: 2023-12-03 15:41:09.717000             🧑  作者: Mango
本次算法测验共有3道题目,难度依次递增。以下是每道题目的描述和要求:
给定一个主串s和一个模式串p,长度分别为n和m。请写一个算法,判断模式串p是否在主串s中出现。如果出现,返回该出现位置的起始下标;否则,返回-1。要求算法时间复杂度为O(nm)。
示例输入:
s = "hello world"
p = "world"
示例输出:
7
Markdown代码片段:
## 题目1:字符串匹配
给定一个主串s和一个模式串p,长度分别为n和m。请写一个算法,判断模式串p是否在主串s中出现。如果出现,返回该出现位置的起始下标;否则,返回-1。要求算法时间复杂度为O(nm)。
**示例输入:**
s = "hello world" p = "world"
**示例输出:**
7
给定整数n和r,计算C(n,r)和P(n,r),其中C(n,r)表示从n个元素中选取r个元素的组合数,P(n,r)表示从n个元素中选取r个元素的排列数。
示例输入:
n = 5
r = 3
示例输出:
C(5,3) = 10
P(5,3) = 60
Markdown代码片段:
## 题目2:排列组合计算
给定整数n和r,计算C(n,r)和P(n,r),其中C(n,r)表示从n个元素中选取r个元素的组合数,P(n,r)表示从n个元素中选取r个元素的排列数。
**示例输入:**
n = 5 r = 3
**示例输出:**
C(5,3) = 10 P(5,3) = 60
给定两个字符串s1和s2,长度分别为n1和n2,求它们的最长公共子序列。最长公共子序列是指在两个字符串中都出现的、长度最长的子序列。
示例输入:
s1 = "abcde"
s2 = "ace"
示例输出:
"ace"
Markdown代码片段:
## 题目3:最长公共子序列
给定两个字符串s1和s2,长度分别为n1和n2,求它们的最长公共子序列。最长公共子序列是指在两个字符串中都出现的、长度最长的子序列。
**示例输入:**
s1 = "abcde" s2 = "ace"
**示例输出:**
"ace"