算法做题记录05

目录

标识符

题目描述

代码


标识符

题目描述

在 C++ 中,标识符是用于标识某个实体的“名字”。这里,我们定义标识符是满足以下条件的非空字符串:

  1. 串长 ≤32;
  2. 仅由数字 0 到 9、大写字母 A 到 Z、小写字母 a 到 z、下划线 __、美金符号 $ 组成;
  3. 第一个字符不是数字。

给定若干字符串,一行一个,要求分别判断它们是否是满足条件的标识符。

请注意,请不要混淆标识符和 C++ 中变量的定义,例如有以下区别:

  1. 以 * 开头(指针),结尾有 [](数组)等情况均不属于标识符,输入中多次出现同样的字符串不需要额外判断重名。
  2. 本题的定义中,不允许标识符中出现转义符 \。
  3. C++ 关键字等也属于标识符。
  4. 其他与 C++ Standard 冲突的事项在本题中均以上述定义为准,例如不同的编译器对串长的限制可能不同。

输入格式

第一行一个数 T,表示需要判断的组数。

接下来每行一个串 S。注意,所在行的换行不是 S 的一部分。

输入满足一行一串,不存在额外的空行(除了文件末尾)。

输出格式

输出 T 行。每行输出 OK 或 CE,分别表示合法或不合法。

样例输入

6
int
_123_
0xFF
_
Hello World
\u4f60\u53d1\u73b0\u4e86\u5f69\u86cb\uff01

样例输出

OK
OK
CE
OK
CE
CE

数据范围

令 |S| 表示字符串 S 的长度。

对于前 30% 的数据,|S|=1。

对于前 60% 的数据,S 非空且仅由数字和大小写字母组成。

对于前 80% 的数据,S 中无空格。

对于 100% 的数据,1≤T≤10,0≤|S|,∑|S|≤1000。

保证 S 由可打印 ASCII 字符(ASCII 码范围 32∼126)组成。比如,S 中不会出现换行、制表符或汉字。

时间限制:1s;空间限制:64MB。

提示

请仔细读题,注意特殊边界情况。

代码

#include<iostream>
#include<cstring>
using namespace std;
char a[1005];
int check(char m[]){
	if(strlen(m)>32||strlen(m)==0) return 0;
	int n=strlen(m);
	for(int i=0;i<n;i++){
		if(!((m[i]>='0'&&m[i]<='9')||(m[i]>='a'&&m[i]<='z')||(m[i]>='A'&&m[i]<='Z')||m[i]=='$'||m[i]=='_'))
		return 0;
		else if(m[i]=='\\')
		return 0;
	}
	
	if(m[0]>='0'&&m[0]<='9') return 0;
	return 1;
}
int main(){
	int n;
	cin>>n;
	getchar();
	for(int i=0;i<n;i++){
		gets(a);
		if(check(a)) cout<<"OK"<<endl;
		else cout<<"CE"<<endl;
	}
	return 0;
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要将用户做题数据转换为深度学习模型可以处理的格式。假设每个用户做了多道题目,那么可以将用户做题数据转换为三个列表:用户列表、题目列表和做题记录列表。其中,每个做题记录包含用户id、题目id和做题记录id。 接下来,可以使用deepctr框架中的DIN模型来建立预测模型。DIN模型是一种基于神经网络的推荐算法,可以通过用户历史行为数据来预测用户对新物品的兴趣。 为了使用DIN模型,需要对用户和题目进行嵌入(embedding)操作,将每个用户和题目映射到一个低维向量空间中。这里可以使用深度学习中的Embedding层来实现。 接着,可以将用户、题目和做题记录列表输入到DIN模型中进行训练。训练过程中,可以使用交叉熵损失函数来计算预测结果与真实值之间的误差,并使用梯度下降算法来更新模型参数。 最后,可以使用训练好的DIN模型来预测用户对新题目的做题情况。对于每个新题目,可以将其与每个用户的历史做题记录一起输入到模型中,得到用户对该题目的兴趣值。根据兴趣值的大小,可以对所有用户进行排序,以确定哪些用户最有可能对该题目感兴趣。 需要注意的是,在使用DIN模型进行预测时,需要对输入数据进行归一化和缩放等预处理操作,以确保模型的预测结果具有良好的准确性。此外,还需要对模型进行调参,以优化模型的性能和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值