C UVa-401:回文,超出了输出限制
我正在尝试的问题401-回文UVa在线法官,但我总是得到一个失败。。。你可以找到问题所在 这是我的密码:C UVa-401:回文,超出了输出限制,c,C,我正在尝试的问题401-回文UVa在线法官,但我总是得到一个失败。。。你可以找到问题所在 这是我的密码: #include <stdio.h> #include <stdlib.h> #include <string.h> char reverse_t[36] = {' ','1','S','E',' ','Z',' ',' ','8',' ', 'A',' ',' ',' ','3',' ',' ',
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char reverse_t[36] = {' ','1','S','E',' ','Z',' ',' ','8',' ',
'A',' ',' ',' ','3',' ',' ',
'H','I','L',' ','J','M', ' ',
'O', ' ', ' ', ' ','2','T',
'U','V','W','X','Y','5'};
int is_mirror(char a,char b){
if(a>='1' && a<='9'){
if(reverse_t[a-'0'] == b) return 1;}
else if(a>='A' && a<='Z')
{if(reverse_t[a-'A'+10] == b) return 1;}
return 0;
}
int main(int argc, char **argv) {
char line[21];
size_t len;
int is_palinedromes, is_mirrored;
while(scanf("%20s",line)){
is_palinedromes = 1;
is_mirrored = 1;
int i;
len = strlen(line);
for(i = 0;i<len/2;i++){
if(line[i] != line[len-1-i])
is_palinedromes =0;
if(!is_mirror(line[i],line[len-1-i]))
is_mirrored = 0;
}
if((len%2==1)&&(is_mirrored))
if(!is_mirror(line[len/2],line[len/2]))
is_mirrored = 0;
if(is_palinedromes && is_mirrored)
printf("%s -- is a mirrored palindrome.\n",line);
else if(is_mirrored &&(!is_palinedromes))
printf("%s -- is a mirrored string.\n",line);
else if((!is_mirrored)&&is_palinedromes)
printf("%s -- is a regular palindrome.\n",line);
else
printf("%s -- is not a palindrome.\n",line);
printf("\n");
}
return 0;
}
#包括
#包括
#包括
字符反向_t[36]={'','1','S','E','','Z','','8','',
‘A’、‘A’、‘B’、‘3’、‘A’、‘B’、‘B’、‘B’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A,
‘H’、‘I’、‘L’、‘J’、‘M’、’,
‘O’、‘T’、‘2’、‘T’,
‘U’、‘V’、‘W’、‘X’、‘Y’、‘5’};
int是镜像(字符a、字符b){
如果(a>='1'&&a='a'&&a似乎输入没有尽头,所以我只是更改代码
while(scanf("%20s",line))
到
然后我得到了一个AC:)
while(scanf("%20s",line)!=EOF)