UVaOJ 401 - Palindromes
2012-09-10 13:07
309 查看
AOAPC
I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving :: String
Description
给一段字符串,判断是否为回文串或者镜像串。
Type
String
Analysis
定义两个指针,一个从前往后,一个从后往前。
对两个指针指向的字符进行匹配即可。
对于题目给的匹配表,定义个字符常量数组来map即可。
注意镜像串的中间唯一字符,自身必须是个镜像字符。
Solution
I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving :: String
Description
给一段字符串,判断是否为回文串或者镜像串。
Type
String
Analysis
定义两个指针,一个从前往后,一个从后往前。
对两个指针指向的字符进行匹配即可。
对于题目给的匹配表,定义个字符常量数组来map即可。
注意镜像串的中间唯一字符,自身必须是个镜像字符。
Solution
// UVaOJ 401 // Palindromes // by A Code Rabbit #include <cstdio> #include <cstring> const char LETTER_REVERSE[] = { 'A', ' ', ' ', ' ', '3', ' ', ' ', 'H', 'I', 'L', ' ', 'J', 'M', ' ', 'O', ' ', ' ', ' ', '2', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; const char NUMBER_REVERSE[] = { ' ', '1', 'S', 'E', ' ', 'Z', ' ', ' ', '8', ' ' }; char str[100]; int main() { while (gets(str)) { bool palindrome = true; bool mirrored = true; for (int i = 0, j = strlen(str) - 1; i <= j; i++, j--) { if (str[i] != str[j]) palindrome = false; if ('A' <= str[i] && str[i] <= 'Z') { if (LETTER_REVERSE[str[i] - 'A'] != str[j]) mirrored = false; } else { if (NUMBER_REVERSE[str[i] - '0'] != str[j]) mirrored = false; } } printf("%s -- ", str); if (palindrome && mirrored) printf("is a mirrored palindrome.\n"); else if (palindrome && !mirrored) printf("is a regular palindrome.\n"); else if (!palindrome && mirrored) printf("is a mirrored string.\n"); else printf("is not a palindrome.\n"); printf("\n"); } return 0; }
相关文章推荐
- uvaoj 401 Palindromes
- uvaoj 401 Palindromes
- UVaOJ 401 Palindromes
- UVAOJ401- Palindromes
- uvaoj-401-Palindromes
- UVaOJ 401 - Palindromes
- UVaOJ 401 - Palindromes
- 【UVaOJ】401 Palindromes
- UvaOj 401 - Palindromes
- UvaOj 401 - Palindromes
- 401 - Palindromes
- UVA 401 - Palindromes
- 401 - Palindromes
- 401 Palindromes(回文词)
- Uva 401 - Palindromes
- UVa401_Palindromes(小白书字符串专题)
- uva 401 Palindromes(字符串回文处理)
- UVa-401-Palindromes
- 401 - Palindromes
- UVA - 401 Palindromes (回文串)