codepeng
posts - 21, comments - 2, trackbacks - 0, articles - 0
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2011年8月
>
日
一
二
三
四
五
六
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
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
(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实现静态文本超链接的方法(4541)
2. ZOJ1292 , HDU 1047 Integer Inquiry(728)
3. Delete Number——百思不得其解(677)
4. X倍数问题(622)
5. HDU 1160 ZOJ 1108 FatMouse's Speed(545)
评论排行榜
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
阅读(196)
评论(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
知识库
博问
管理
Powered by:
C++博客
Copyright © acpeng