UVa 401 字符串问题解惑

muller8 2013-08-08 12:58:56
401 Palindromes


题目链接:
引用
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=342



由于解题思路改了,所以AC了。但是一直不知道为什么原来的代码一直是RE???
选择的是ANSI C来判断的。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define swap(a,b) {(a)=(a)^(b); (b)=(a)^(b); (a)=(a)^(b);}

char str[1000], rev[1000], mir[1000];
char mirror[]={"1SE Z 8 A 3 HIL JM O 2TUVWXY5"};

void Strrev(char s[]){ /*回文函数*/
int i, len;
len = strlen(s);
for(i = 0; i<(len/2); ++i)
swap(s[i],s[len-i-1]);
}

int main(){
int len;
int i, flag1, flag2;
while(scanf("%s", str)!=EOF){
strcpy(rev, str);
Strrev(rev); /*回文字串*/

len = strlen(str);
for(i = 0; i<len; i++){ /*镜像字串*/
mir[i] = mirror[str[i]-'1'];
}
mir[i] = '\0';
Strrev(mir);

flag1 = strcmp(str, rev);
flag2 = strcmp(str, mir);

printf("%s -- ", str);
if(flag1!=0&&flag2!=0){
printf("is not a palindrome.");
}
else if(flag1==0&&flag2!=0){
printf("is a regular palindrome.");
}
else if(flag1!=0&&flag2==0){
printf("is a mirrored string.");
}
else if(flag1==0&&flag2==0){
printf("is a mirrored palindrome.");
}
printf("\n\n");
}
}
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
muller8 2013-08-09
  • 打赏
  • 举报
回复
引用
最后return 0;
也不是~
muller8 2013-08-08
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
char mirror[]={"1SE Z 8 A 3 HIL JM O 2TUVWXY5"}; 去掉{}
还是会RE的~
FancyMouse 2013-08-08
  • 打赏
  • 举报
回复
char mirror[]={"1SE Z 8 A 3 HIL JM O 2TUVWXY5"}; 去掉{}
FancyMouse 2013-08-08
  • 打赏
  • 举报
回复
最后return 0;

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧