为什么to short on line 1?
查看原帖
为什么to short on line 1?
153950
shyhao楼主2021/1/23 10:52
#include <cstdio>
#include <string.h>

using namespace std;

int n,m;
char enter;
char name[60];
struct Trie{
	Trie *next[30];
	bool vis;
	Trie(){
		for (int i = 0; i<=25; i++)
			next[i] = NULL;
		vis = 0;
	}
};
Trie *T = new Trie;

void insert(Trie *p,char *s){
	for (int i = 0; i<strlen(s); i++){
		if (p->next[s[i]-'a']==NULL)	p->next[s[i]-'a'] = new Trie;
		p = p->next[s[i]-'a'];
	}
}

int query(char *s,Trie *p){
	for (int i = 0; i<strlen(s); i++){
		if (p->next[s[i]-'a']==NULL)	return 0;
		p = p->next[s[i]-'a'];
	}
	if (p->vis)	return 2;
	p->vis = 1;
	return 1;
}

int main(){
	scanf("%d",&n);scanf("%c",&enter);
	for (int i = 1; i<=n; i++){
		gets(name);
		insert(T,name);
	}
	scanf("%d",&m);scanf("%c",&enter);
	for (int i = 1; i<=m; i++){
		gets(name);
		switch(query(name,T)){
			case (1):puts("OK");break;
			case (2):puts("REPEAT");break;
			case (0):puts("WRONG");break;
		}
	}
}

我下了第一个样例,输出的答案是一样的,为什么报错:To short on line 1?

2021/1/23 10:52
加载中...