codepeng
posts - 21, comments - 2, trackbacks - 0, articles - 0
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2011年6月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
(20)
ACM程序(17)
MFC/SDK编程(1)
机械电子
生活点滴(2)
数学天地
算法浅谈
随笔档案
(21)
2011年12月 (1)
2011年10月 (3)
2011年9月 (5)
2011年8月 (3)
2011年6月 (1)
2011年5月 (8)
相册
myself
link
搜索
最新评论
1. re: 用MFC实现静态文本超链接的方法[未登录]
1
--1
2. re: apeng版的解题报告
好像代码不能复制哈,下次贴代码时不加行号了
--acpeng
阅读排行榜
1. 用MFC实现静态文本超链接的方法(4568)
2. ZOJ1292 , HDU 1047 Integer Inquiry(760)
3. Delete Number——百思不得其解(683)
4. X倍数问题(634)
5. ZOJ 1061 Web Navigation_数据结构_栈(560)
评论排行榜
1. apeng版的解题报告(1)
2. 用MFC实现静态文本超链接的方法(1)
3. ZOJ Monthly, May 2011 .Problem B(0)
4. X倍数问题(0)
5. 杂谈(0)
ZOJ 1325,HDOJ 1318--Palindromes
Posted on 2011-08-24 13:20
acpeng
阅读(198)
评论(0)
编辑
收藏
引用
所属分类:
ACM程序
出自ZOJ_1325:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=325
主要技巧:设置两个全局的字符串常量,分别表示A~Z的reverse字符和1~9的reverse字符,不存在reverse的可以用任一个invalid characters代替,本代码用@代替,写两个函数分别进行palindrome string和mirrored string的判断。
#include
<
stdio.h
>
#include
<
string
.h
>
char
glo_str[
27
]
=
"
A@@@3@@HIL@JM@O@@@2TUVWXY5
"
;
char
glo_num[
10
]
=
"
1SE@Z@@8@
"
;
int
Is_Palindrome(
char
*
str)
//
return 1:It is a Palindrome string,or else.
{
int
i,j
=
(
int
)strlen(str)
-
1
;
for
(i
=
0
;i
<=
j;i
++
,j
--
)
if
(str[i]
!=
str[j])
return
0
;
return
1
;
}
int
Is_mirrored(
char
*
str)
//
return 1:It is a mirrored string,or else.
{
int
i,j
=
(
int
)strlen(str)
-
1
;
for
(i
=
0
;i
<=
j;i
++
,j
--
)
{
if
(str[i]
>=
'
1
'
&&
str[i]
<=
'
9
'
)
{
if
(glo_num[str[i]
-
'
1
'
]
!=
str[j])
return
0
;
}
else
{
if
(glo_str[str[i]
-
'
A
'
]
!=
str[j])
return
0
;
}
}
return
1
;
}
int
main()
{
char
str[
30
]
=
"
\0
"
;
int
a,b;
while
(scanf(
"
%s
"
,str)
!=
EOF)
{
printf(
"
%s --
"
,str);
a
=
Is_Palindrome(str);
b
=
Is_mirrored(str);
if
(a
==
0
&&
b
==
0
)printf(
"
is not a palindrome.\n
"
);
else
if
(a
==
0
&&
b
==
1
)printf(
"
is a mirrored string.\n
"
);
else
if
(a
==
1
&&
b
==
0
)printf(
"
is a regular palindrome.\n
"
);
else
printf(
"
is a mirrored palindrome.\n
"
);
printf(
"
\n
"
);
}
return
0
;
}
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
fzu OJ Problem 2064 找位置
HDU 2084 数塔
HDU 1160 ZOJ 1108 FatMouse's Speed
HDU 1087 Super Jumping
ZOJ1292 , HDU 1047 Integer Inquiry
ZOJ 1061 Web Navigation_数据结构_栈
HDU 1862 EXCEL排序
POJ 2273 An Excel-lent Problem
HDU 1166敌兵布阵
HDU 1022 Train Problem I_数据结构_栈
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © acpeng