天勤考研算法练习赛题目-天勤考研算法练习赛(2)
时间: 2023-11-10 20:48:14 浏览: 41
天勤考研算法练习赛题目-天勤考研算法练习赛(2)是一道编程题,题目的主要内容是判断给定的物品清单中哪些物品可以被"变出",哪些物品不能被"变出"。物品的命名规则如下:
1. 物品的名称仅由字母(大小写均可)和数字组成。
2. 如果名称中有数字,则规定连续的数字构成一个正整数,并且所有构成的正整数都必须是素数。
根据给定的规则,我们需要判断每个物品的名称是否符合变出的规则。物品名称中只要包含了除字母和数字以外的字符,就不能被变出。
你可以通过编写一个程序,遍历物品清单中的每个物品名称,检查是否包含非字母和数字的字符,如果包含则判定为不能被变出,否则判定为可以被变出。最后将判断结果输出即可。
相关问题
天勤考研算法练习赛题目-天勤考研算法练习赛
天勤考研算法练习赛题目-天勤考研算法练习赛是一个考察算法设计和实现能力的竞赛。题目中给出了一组关于球赛开始和结束时间的数据,要求选出能够参与的最大球赛数量。
具体的实现代码如下:
```c++
#include<iostream>
#include<queue>
#include<algorithm>
#include<functional>
#include<cstdio>
const int MAXN = 100;
using namespace std;
int main() {
#ifdef ONLINE_JUDGE
#else
freopen("D:\\in.txt", "r", stdin);
freopen("D:\\out.txt", "w", stdout);
#endif
int n(0);
while (cin >> n) {
if (n == 0)
break;
pair<int, int> itv[MAXN];
for (int i = 0; i < n; i++) {
cin >> itv[i].second >> itv[i].first;
}
sort(itv, itv + n);
int ans(0), t(0);//t是最后所选工作的结束时间
for (int i = 0; i < n; i++) {
if (t <= itv[i].second) {
ans++;
t = itv[i].first;
}
}
cout << ans << endl;
}
return 0;
}
```
这段代码主要是通过排序给出的球赛时间数据,然后遍历选取能够参与的最大球赛数量,并输出结果。
算法的核心思想是贪心算法。按照球赛结束时间从小到大排序,然后遍历排序后的数据,将能够参与的球赛数量加一,并将最后一场参与的球赛的结束时间作为下一场比赛的开始时间。最后输出能够参与的最大球赛数量。
这样的算法设计可以保证选取的球赛数量最大,并且具有较高的效率。
天勤kmp代码C语言
天勤在C语言中提供了一个KMP算法的代码实现。KMP算法是一种字符串匹配算法,用于在一个主串中查找一个子串的出现位置。该算法通过预处理子串,构建一个next数组,来优化匹配过程,从而提高时间复杂度。
具体的代码实现如下:
```c
// 定义字符串类型
typedef struct {
char ch[30];
int length;
} string;
// KMP算法
int KMP(string sub_string, string main_string) {
int next[9];
int i = 1, j = 0;
GetNext(sub_string, next);
while (i <= main_string.length && j <= sub_string.length) {
if (j == 0 || main_string.ch[i] == sub_string.ch[j]) {
i++;
j++;
} else {
j = next[j];
}
}
if (j > sub_string.length)
return i - j + 1;
else
return 0;
}
// 求next数组
void GetNext(string sub_string, int next[]) {
int i = 1, j = 0;
next[1] = 0;
while (i < sub_string.length) {
if (j == 0 || sub_string.ch[i] == sub_string.ch[j]) {
i++;
j++;
next[i] = j;
} else {
j = next[j];
}
}
}
```
以上就是天勤提供的KMP算法的C语言实现代码。