UVA-401 Palindromes

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <string>
 4 #include <vector>
 5 #include <algorithm>
 6 #include <string.h>
 7 #include <stack>
 8 #include <unordered_map>
 9 #include <math.h>
10 using namespace std;
11 
12 string msgList[4] {"not a palindrome.","a regular palindrome.","a mirrored string.","a mirrored palindrome."};
13 string reverseList = {"A   3  HIL JM O   2TUVWXY51SE Z  8 "};
14 int main()
15 {
16     string input;
17     while(cin >> input)
18     {
19         int isPalindrome = 1,isMirrored = 1;
20         int lo,hi;
21         for(lo = 0,hi = input.size()-1; lo < hi; lo ++,hi --)
22         {
23             if(input[lo]!=input[hi])
24             {
25                 isPalindrome = 0;
26                 break;
27             }
28         }
29         
30         for(lo = 0,hi = input.size()-1; lo <= hi; lo ++,hi --)
31         {
32             if(isalpha(input[lo]))
33             { 
34                 if(reverseList[input[lo]-'A'] != input[hi])
35                 {
36                     isMirrored = 0;
37                     break;
38                 }
39             } 
40             else
41             { 
42                 if(reverseList[input[lo]-'0'+25] != input[hi])
43                 {
44                     isMirrored = 0;
45                     break;
46                 }
47             } 
48         }
49         cout << input << " -- is " << msgList[isMirrored*2+isPalindrome] << endl << endl;
50     }
51     return 0;
52 }

 

转载于:https://www.cnblogs.com/Asurudo/p/9590724.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值