如何使输出结果和输入结果分开
这是测试得到的输出结果另一个是需要的输出样式
以下是代码
#include <stdio.h>
#include <string.h>
#define M 1046527
#define NIL (-1)
#define L 14
char H;
int getChar(char ch) {
if(ch=='A')return 1;
else if(ch=='C')return 2;
else if(ch=='G')return 3;
else if(ch=='T')return 4;
else return 0;
}
long long getKey(char str[]) {
long long sum=0,p=1,i;
for(i=0; i<strlen(str); i++) {
sum+=p*(getChar(str));
p*=5;
}
return sum;
}
int h1(int key) {
return key % M;
}
int h2(int key) {
return 1+(key % (M-1));
}
int find(char str[]) {
long long key,i,h;
key=getKey(str);
for(i=0;; i++) {
h=(h1(key)+i*h2(key)) % M;
if(strcmp(H,str)==0)return 1;
else if(strlen(H)==0)return 0;
}
return 0;
}
int insert(char str[]) {
long long key,i,h;
key=getKey(str);
for(i=0;; i++) {
h=(h1(key)+i*h2(key))%M;
if(strcmp(H,str)==0)return 1;
else if(strlen(H)==0) {
strcpy(H,str);
return 0;
}
}
return 0;
}
int main() {
int i,n,h;
char str,com;
for(i=0; i<M; i++)H='\0';
scanf("%d",&n);
for(i=0; i<n; i++) {
scanf("%s %s",com,str);
if( com == 'i' )
{
insert(str);
}
else
{
if(find(str))
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
}
return 0;
} #include <stdio.h>
#include <string.h>
#define M 1046527
#define NIL (-1)
#define L 14
char H;
int getChar(char ch) {
if(ch=='A')return 1;
else if(ch=='C')return 2;
else if(ch=='G')return 3;
else if(ch=='T')return 4;
else return 0;
}
long long getKey(char str[]) {
long long sum=0,p=1,i;
for(i=0; i<strlen(str); i++) {
sum+=p*(getChar(str));
p*=5;
}
return sum;
}
int h1(int key) {
return key % M;
}
int h2(int key) {
return 1+(key % (M-1));
}
int find(char str[]) {
long long key,i,h;
key=getKey(str);
for(i=0;; i++) {
h=(h1(key)+i*h2(key)) % M;
if(strcmp(H,str)==0)return 1;
else if(strlen(H)==0)return 0;
}
return 0;
}
int insert(char str[]) {
long long key,i,h;
key=getKey(str);
for(i=0;; i++) {
h=(h1(key)+i*h2(key))%M;
if(strcmp(H,str)==0)return 1;
else if(strlen(H)==0) {
strcpy(H,str);
return 0;
}
}
return 0;
}
int main() {
//int i,n,h;
int i,n;
char str,com;
for(i=0; i<M; i++)H='\0';
scanf("%d",&n);
char *result;
int index = 0;
for(i=0; i<n; i++) {
scanf("%s %s",com,str);
if( com == 'i' )
{
insert(str);
}
else
{
if(find(str))
{
//printf("yes\n");
result = "yes";
}
else
{
//printf("no\n");
result = "no";
}
}
}
for(i = 0; i < index; ++i) {
printf("%s\n", result);
}
return 0;
}
页:
[1]