国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

POJ 1159 Palindrome解題報告

2019-11-10 17:44:10
字體:
供稿:網(wǎng)友

題目大意:給你一個字符串,問你最少加上幾個字符可以得到一個回文串

思路:給一個字符串添加字符,使其變成回文字符串。這個過程可以看成是:對這個字符串兩邊同時進行處理,讓兩邊第一個字符一樣了,然后刪去兩邊的這個字符,再繼續(xù)進行。理論遞推關(guān)系:使該字符串前i個和后j個完全相同至少所需添加的字符個數(shù)=min{使該字符串前i個和后j-1個完全相同的個數(shù)+1 ;使該字符串前i-1個和后j個完全相同的個數(shù)+1 ;使該字符串前i-1個和后j-1個完全相同的個數(shù)+2/0(第i個和倒數(shù)第j個字符不相同/相同)}

遞推關(guān)系代數(shù)化:設(shè)使該字符串前i個和后j個完全相同至少所需添加的字符個數(shù)為a[i][j];字符串有n個字符。

if(c[i]!=r[n+1-j])  a[i][j]=min{a[i-1][j],a[i][j-1],a[i-1][j-1]+2};else  a[i][j]=min{a[i-1][j],a[i][j-1],a[i-1][j-1])};起始條件(邊界條件):a[i][0]=a[0][i]=i;(0<=i<=n)還有一個問題就是:遞推之后,答案是a[?][?]。這個就可以理解成是a[?][?]的時候,該字符串就變成了回文串。然后根據(jù)表達的意思,應(yīng)該是min{a[i][j](i+j==n||i+j==n-1)}。(n為字符總個數(shù))沒仔細看,內(nèi)存太小了!得用滾動數(shù)組(不知道是不是這個名字),反正就是兩個一維數(shù)組滾動著用唄。也沒仔細看時間復(fù)雜度,這么仔細一想,時間復(fù)雜度O(n^2);

之后查了題解,別人的一句話,很6啊:尋找串與其逆串的最長公共子序列。因為此子序列必是回文串,剩下的字符就是需要插入的。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 周至县| 绵阳市| 边坝县| 冀州市| 灵石县| 丹凤县| 安宁市| 和林格尔县| 乐山市| 元朗区| 新平| 顺昌县| 泾阳县| 商丘市| 始兴县| 新巴尔虎右旗| 三门县| 遂溪县| 罗城| 临颍县| 米脂县| 金山区| 汝城县| 屏山县| 吴江市| 内黄县| 鹤庆县| 柳江县| 清远市| 和平县| 都匀市| 万盛区| 上饶县| 西乌珠穆沁旗| 龙游县| 格尔木市| 涪陵区| 夏邑县| 云霄县| 张家港市| 廉江市|