401 Palindrome
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                401 Palindrome
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                這道題最初我是沒理解清楚題意,我以為那些reverse欄空白的字母是省略了.后來在這個論壇找到了更多的測試數據,發現了自己理解錯了,重新讀題= =,修改了下代碼- -.弄了很久才AC
我的思路和別人有點不同的是,我是通過計算來得到在常量表中的位置
好吧= =? 這道題本來該總結很多的,今天來忘記很多了.
#include<stdio.h>#include<string.h>
#include<ctype.h>
const int maxn = 1000;
int main()
{
#ifdef LOCAL
freopen("input.txt", "r", stdin);
#endif
int state_m = 1, state_p = 1;
int len;
int a, x; //a字符在數組中位置,x數組中間位置
char s[maxn];
const char c[] = "A 3 HIL JM O 2TUVWXY51SE Z 89";
while(scanf("%s", s) != EOF)
{
printf("%s", s);
state_m = 1; state_p = 1;
len = strlen(s);
x = (len + 1) / 2;
for(int i = 0; i < x; i++)
{
a = (int)(isdigit(s[i]) ? s[i] - 23: s[i] - 65);
if(s[len-1-i] == c[a]) //判斷是否為mirrored
{
if(s[len-1-i] != s[i]) state_p = 0;
}
else
{
state_m = 0;
if(s[len-1-i] != s[i]) state_p = 0;
}
}
if(state_m && state_p) printf(" -- is a mirrored palindrome.\n\n");
else if(state_m) printf(" -- is a mirrored string.\n\n");
else if(state_p) printf(" -- is a regular palindrome.\n\n");
else printf(" -- is not a palindrome.\n\n");
memset(s, 0, sizeof(s));
}
return 0;
}
轉載于:https://www.cnblogs.com/shixuehunk/archive/2011/07/13/2105714.html
總結
以上是生活随笔為你收集整理的401 Palindrome的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 工厂模式 Factory
- 下一篇: Sharepoint学习笔记---如何在
