uvaoj-401-Palindromes
2014-02-09 14:50
246 查看
比较简单的题目,WA了一次是没看清英文题目的要求。
/* uvaoj: 401 PROB: Palindromes */ #include<stdio.h> #include<string.h> #define LOCAL char st[25]; char reverse1[100] = "AEHIJLMOSTUVWXYZ12358"; char reverse2[100] = "A3HILJMO2TUVWXY51SEZ8"; int r; int is_regular( char st[] ); int is_mirrored( char st[] ); int main() { r = strlen(reverse1); #ifdef LOCAL freopen("Palindromes.in.txt", "r", stdin); freopen("Palindromes.out.txt", "w", stdout); #endif // LOCAL while( gets(st) != NULL ) { int m, n; int len = strlen(st); m = is_regular(st); n = is_mirrored(st); if(m) { if(n) printf("%s -- is a mirrored palindrome.\n", st); else printf("%s -- is a regular palindrome.\n", st); } else { if(n) printf("%s -- is a mirrored string.\n", st); else printf("%s -- is not a palindrome.\n", st); } printf("\n"); } return 0; } int is_regular( char st[] ) { int i, j, len, yes=1; char s[30]; strcpy(s,st); len = strlen(s); for( i=0; i<len/2; i++ ) if( s[i] != s[len-1-i] ) { yes = 0; break; } return yes; } int is_mirrored( char st[] ) { int yes = 1; char s1[30], s2[30]; strcpy(s1,st); strcpy(s2,st); int i, len, n; len = strlen(s1); for( i=0; i<len; i++ ) { int found = 0; for(n=0; n<r; n++) { if(s1[i] == reverse1 ) { s1[i] = reverse2 ; found = 1; break; } } if(!found) return 0; } strcat(s2,s1); if( is_regular(s2) ) return 1; else return 0; }
相关文章推荐
- 【UVaOJ】401 Palindromes
- UvaOj 401 - Palindromes
- UvaOj 401 - Palindromes
- uvaoj 401 Palindromes
- uvaoj 401 Palindromes
- UVaOJ 401 Palindromes
- UVAOJ401- Palindromes
- UVaOJ 401 - Palindromes
- UVaOJ 401 - Palindromes
- UVaOJ 401 - Palindromes
- UVa 401 Palindromes
- UVa_401 - Palindromes
- UVa 401 - Palindromes(回文词)
- UVA 401 (暑假-字符串(1) -A - Palindromes)
- UVA401 Palindromes
- UVa-401 Palindromes
- UVA 401 Palindromes
- UVA 401(p48)----Palindromes
- UVA401_Palindromes
- UVA - 401 Palindromes