pzz
C++博客
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
隨筆:8 文章:35 評論:3 引用:0
龐果會-回文字符串
1.一開始想法是對的,就是(總長度/2)!/(每個字母i出現的次數/2)! ,一開始用c++寫的代碼,錯誤是因為數據溢出,而java的BigInteger對于處理大數據的加減乘除是最適合不過的啦
下面是寫得兩個代碼:
c++代碼
1
int
_init(
string
s,
int
countnum[])
2
{
3
int
len=s.length();
4
for
(
int
i=0;i<len;i++)
5
countnum[s[i]-'a']++;
6
return
len;
7
}
8
int
palindrome(
const
string
&s)
9
{
10
int
countnum[26],visit[26];
11
int
alphanum;
12
memset(countnum,0,
sizeof
(countnum));
13
memset(visit,0,
sizeof
(visit));
14
alphanum=_init(s,countnum);
15
int
is_palindrome=0;
16
for
(
int
i=0;i<26;i++)
17
{
18
if
(countnum[i]%2==1) {
19
is_palindrome++;
20
visit[i]=1;
21
}
22
}
23
if
(is_palindrome>1)
return
0;
24
else
25
{
26
long
long
sum=1;
27
//
則除去中間的一個字母還有兩邊的字母,(alphanum-1)/2
28
if
(is_palindrome==1){
29
for
(
int
i=1;i<=(alphanum-1)/2;i++)
30
sum=((sum*i)%MAX_VALUE);
31
for
(
int
i=0;i<26;i++)
32
{
33
if
(countnum[i]>0)
34
{
35
if
(visit[i]!=1){
36
for
(
int
j=2;j<=(countnum[i]/2);j++)
37
{
38
sum=(sum/j)%MAX_VALUE;
39
}
40
}
41
else
42
{
43
for
(
int
j=2;j<=(countnum[i]-1)/2;j++)
44
{
45
sum=(sum/j)%MAX_VALUE;
46
}
47
}
48
}
49
}
50
}
51
else
52
{
53
for
(
int
i=1;i<=(alphanum)/2;i++)
54
sum=((sum*i)%MAX_VALUE);
55
for
(
int
i=0;i<26;i++)
56
{
57
if
(countnum[i]>0)
58
{
59
if
(visit[i]!=1){
60
for
(
int
j=2;j<=(countnum[i]/2);j++)
61
{
62
sum=(sum/j)%MAX_VALUE;
63
}
64
}
65
else
66
{
67
for
(
int
j=2;j<=(countnum[i]-1)/2;j++)
68
{
69
sum=(sum/j)%MAX_VALUE;
70
}
71
}
72
}
73
}
74
}
75
return
sum%MAX_VALUE;
76
}
77
}
78
Java代碼
參考文章:
http://blog.csdn.net/u011459840/article/details/9667077
1
public
static
int
palindrome(String s) {
2
int
[]countnum=
new
int
[26];
3
int
len=s.length();
4
int
is_can=0;
5
if
(s==
null
||s.length()>100||s.length()<1)
return
0;
6
for
(
int
i=0;i<len;i++)
7
{
8
countnum[s.charAt(i)-'a']++;
9
}
10
for
(
int
i=0;i<26;i++){
11
if
(countnum[i]%2==1){
12
is_can++;
13
}
14
}
15
if
(is_can>1)
return
0;
16
else
17
{
18
//
求階乘(len/2)!
19
BigInteger result=BigInteger.ONE;
20
for
(
int
i=1;i<=(len/2);i++){
21
result=result.multiply(BigInteger.valueOf(i));
22
}
23
BigInteger dividevalue=BigInteger.ONE;
24
for
(
int
i=0;i<26;i++)
25
{
26
if
(countnum[i]>0){
27
for
(
int
j=1;j<=(countnum[i]/2);j++){
28
dividevalue=dividevalue.multiply(BigInteger.valueOf(j));
29
}
30
}
31
}
32
result=result.divide(dividevalue);
33
return
result.mod(BigInteger.valueOf(1000000007)).intValue();
34
}
35
發表于 2013-08-01 21:43
pzz
閱讀(129)
評論(0)
編輯
收藏
引用
所屬分類:
龐果會英雄挑戰賽
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2025年7月
>
日
一
二
三
四
五
六
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
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
一些記錄(4)
(rss)
一些算法思路(2)
(rss)
隨筆檔案
2013年2月 (1)
2012年5月 (7)
文章分類
ACM 搜索(1)
(rss)
ahstu_oj(2)
(rss)
c/c++(8)
(rss)
c++基本常識(1)
(rss)
linux嵌入式(5)
(rss)
linux系統下遇到的奇怪問題(1)
(rss)
oj題目思路(2)
(rss)
操作系統(1)
(rss)
成長記錄
(rss)
讀書(1)
(rss)
九度oj(1)
(rss)
龐果會英雄挑戰賽(1)
(rss)
深入理解計算機系統札記
(rss)
樹狀數組(1)
(rss)
思維火花
(rss)
算法學習(1)
(rss)
網絡流
(rss)
線段樹
(rss)
雜感
(rss)
狀態dp
(rss)
字符串匹配(2)
(rss)
文章檔案
2014年5月 (3)
2014年4月 (1)
2014年3月 (1)
2014年2月 (1)
2013年11月 (1)
2013年10月 (3)
2013年9月 (2)
2013年8月 (6)
2013年7月 (4)
2013年6月 (2)
2012年5月 (3)
2012年4月 (4)
2012年3月 (4)
友情鏈接
csdn
豆瓣
杭電酷行天下
老趙
劉若鵬
南陽c小加
搜索
最新評論
1.?re: 樹狀數組和線段樹簡單題
。。。
--pzz
2.?re: 2013我有夢
恩,是的
--pzz
3.?re: 2013我有夢[未登錄]
支持一吧!實踐夢想需要極大的努力
--true
閱讀排行榜
1.?2013我有夢(393)
2.?nyoj195_飛翔(270)
3.?hfut1245_水晶球(269)
4.?熟練才是王道 (266)
5.?群賽(238)
評論排行榜
1.?2013我有夢(2)
2.?熟練才是王道 (0)
3.?nyoj195_飛翔(0)
4.?教訓(0)
5.?群賽(0)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 pzz
久久久久久噜噜精品免费直播
|
久久久久久国产精品美女
|
国产精品久久久久9999高清
|
久久精品国产半推半就
|
深夜久久AAAAA级毛片免费看
|
欧美亚洲国产精品久久
|
狠狠色丁香婷综合久久
|
久久97久久97精品免视看
|
亚洲综合熟女久久久30p
|
少妇人妻88久久中文字幕
|
一本久久久久久久
|
中文字幕人妻色偷偷久久
|
99久久亚洲综合精品成人
|
国产精品99久久久久久宅男小说
|
日产精品久久久久久久性色
|
久久99精品久久久久久野外
|
久久无码人妻一区二区三区午夜
|
亚洲中文字幕无码久久综合网
|
久久夜色精品国产亚洲
|
久久99亚洲网美利坚合众国
|
亚洲精品tv久久久久
|
久久精品成人免费网站
|
久久精品中文字幕无码绿巨人
|
久久国产精品一区
|
国内精品久久久久久久涩爱
|
午夜精品久久久久久99热
|
免费一级做a爰片久久毛片潮
|
国产精品美女久久久久
|
伊人久久精品无码二区麻豆
|
日韩中文久久
|
婷婷久久五月天
|
久久久久一级精品亚洲国产成人综合AV区
|
久久超乳爆乳中文字幕
|
久久精品国产男包
|
精品国产日韩久久亚洲
|
欧美亚洲另类久久综合婷婷
|
久久一区二区免费播放
|
国产精品无码久久四虎
|
久久av高潮av无码av喷吹
|
激情综合色综合久久综合
|
久久久久国产一区二区三区
|