2023年睿抗机器开发者大赛

作者遇到一个编程问题,涉及到字符串查找和比较。在处理一个C++程序时,对于类型D的计算方式感到困惑,尝试使用长度比较但未成功。代码片段显示了对字符串数组的遍历,寻找子串并打印对应标记。当找不到匹配项时,程序输出D。另外,第三题存在测试数据错误,但与作者的采购角色无关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于这个第二题,卡了我一个多小时,虽然我很笨,但是也在努力解答啦!

那个类型D是怎么算的?

开始我是打算用长度,但是比了半天也不知道怎么比,比较合适?

下面是代码,请各位大佬帮忙解答一下。题目现在官方没有公布,希望做出来的大佬给我分享一下,谢谢:

错误代码:

#include<cctype>
#include<iostream>
#include<cstring>
#include<string.h>
using  namespace std;
int N,M,flag,cnt;
struct type{
	string name,al,newal;
}p[100];
int main(){
	cin>>N>>M;
	getchar();
	for(int i=0;i<N;i++){//定级
		cin>>p[i].name>>p[i].al;
		getchar();
	}
	for(int j=0;j<M;j++){
		cin>>p[j].newal;
		getchar();
	}
	for(int j=0;j<M;j++){
		flag=0,cnt=0;;
		for(int i=0;i<N;i++){
			if(p[j].newal.find(p[i].name)!=-1){
				cout<<p[i].al;
				flag=1;
			}
				//cnt=strlen(p[j].newal)-strlen(p[i].name);
				/*if(strlen(p[j].newal)>strlen(p[i].nema)){
					cnt=1;
				}*/
		} 
		if(flag==0){
			printf("D");
		}
		printf("\n");
	}
	return 0;
}

还有那个第三题,说什么测试数据错误,但是对于我来说,根本就用不到,我是采购

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值