panther
C++博客
首页
新随笔
新文章
联系
聚合
管理
posts - 43,comments - 3,trackbacks - 0
<
2010年5月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
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
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
algorithm(3)
P2P tech
Software Development(7)
vim技巧(1)
Web相关(3)
win32 UI
Windows Programming(1)
创业
随笔档案
2012年11月 (1)
2011年7月 (1)
2011年3月 (1)
2010年5月 (5)
2010年4月 (2)
2010年3月 (1)
2009年10月 (8)
2009年9月 (2)
2009年2月 (1)
2009年1月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (1)
2008年3月 (5)
2008年2月 (12)
文章档案
2011年2月 (1)
收藏夹
搜索
algorithm
programming challenges
大数阶乘的计算方法
匈牙利算法
BLOGS of nuibility
csdn
Mark's Blog
C++
GDB使用
STL SGI
VCHOME
VC知识库
阿蒙编程之家
COM 相关
COM Apartment VCHOME
COM 套间
LINUX
EMACs入门
OJ 网站
ZOJ
python
diveintopython
python简明教程
searching
egothor
mg4j
xapian
Tools
ImageCfg
sysinternal
utility-meminfo
UI技术
Direct UI
web 开发
php 开发
win32 UI
CShadeButtonST
Irregular Bitmap Dialog
office UI
windows 编程 V5
定制化右键菜单项
利用ie external对象进行ui开发
鼠标右键菜单项目
win32-debug
Advanced Windows Debugging
Crack Tutorial
CrashFinder
debugging custom filters for unhandled exceptions
debugman
depths of SEH
FxCop (code analysis tool that checks .NET app)
Kernel User-mode debug support
PE and Coff spec
PEVIEW
PREfast(static code analysis for c/c++)
remote debug session 0 process
SAL(standard annotation language)
SEH 原理
高端调试
内和调试器 SYSER
win32-Programming
ACE Strings
dependencywalker
detours for hooking api
ETW for debug and perf trace
LoadLibraryEx(DONT_RESOLVE_DLL_REFERENCES)
Memory Performance Information
NSIS学习
SID myth of Mark. R.
SID Strings
sid2user and user2sid
Synchronization Object Security and Access Rights
Taking Object Ownership
The Undocumented Functions Microsoft Windows NT
WER Setting
Windows Integrity Mechanism Resources
WINDOWS OS INTERNALS LABS
创业
道IT谈生意
代码工厂
codeproject
中国源码网
公司笔试题
emc 笔试
google笔试题
汇编编程
win32asm
软件解密教学
技术网站
神刀网
图形学相关
Lisp 画图
智力题
几个智力题
搜索
最新评论
1. re: 二分查找算法
写的很好,非常感谢!
--co
2. re: 二分查找算法[未登录]
:)
--RUI
3. re: 二分查找算法
知道了,谢谢
--Feng Yi
阅读排行榜
1. Send Message between Processes (ZZ from windows kernel programming)(2455)
2. 二分查找算法(1799)
3. 求逆序数的nlog(2*n)复杂度算法(1318)
4. python模块模板(1078)
5. IE 主页被小人篡改啦 (1067)
评论排行榜
1. 二分查找算法(3)
2. Iterator Classes(0)
3. Container Classes之Sequence(0)
4. Container Classes之Associative Containers(0)
5. Container Adapters(0)
ZZ 统计字符串中所有子串是对称串的个数
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2744
比如:输入字符串aba,其一维子串a,b,a都是对称串,它本身也是对称的,所以其输出为4。
不难看出所有对称串可以分为3类:
I)单个字符组成的对称串,比如a,b,c
II)偶数长度的对称串,比如aa,abba
III)奇数长度的对称串,即:除中间位置的字符可以出现奇数次,两边的字符必须成对出现,比如aca,abcba
其实情况I)是情况III)的特殊形式,由于我们可以直接获得输入串的长度,故把情况I)单独拿出来就不必计算了
1
#include
"
stdio.h
"
2
#include
"
stdlib.h
"
3
#include
"
string.h
"
4
#include
"
iostream
"
5
6
using
namespace
std;
7
#if
0
8
typedef unsigned __int64 uint64;
9
#else
10
typedef unsigned
long
long
uint64;
11
12
#endif
13
char
buf[
5001
];
14
15
uint64 cnt()
16
{
17
uint64 ret
=
0
;
18
size_t len
=
strlen(buf);
19
ret
+=
len;
20
21
for
(
int
i
=
0
; i
<
len
-
1
;
++
i)
22
{
23
int
j
=
i
+
1
;
24
int
k
=
i;
25
while
(k
>=
0
&&
j
<=
len
-
1
&&
buf[k]
==
buf[j])
26
{
27
++
ret;
28
--
k,
++
j;
29
}
30
}
31
32
for
(
int
i
=
1
; i
<
len
-
1
;
++
i)
33
{
34
int
j
=
i
+
1
,
35
k
=
i
-
1
;
36
while
(k
>=
0
&&
j
<=
len
-
1
&&
buf[k]
==
buf[j])
37
{
38
++
ret;
39
--
k,
++
j;
40
}
41
}
42
return
ret;
43
}
44
45
int
main()
46
{
47
48
while
(cin
>>
buf)
49
{
50
cout
<<
cnt()
<<
endl;
51
}
52
return
0
;
53
}
posted on 2010-05-10 11:02
RUI
阅读(574)
评论(0)
编辑
收藏
引用
所属分类:
algorithm
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
以四节为步长 计算字符串长度
ZZ 统计字符串中所有子串是对称串的个数
单链表反转以及反向打印
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理