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

首頁 > 學院 > 開發設計 > 正文

POJ 1159 Palindrome解題報告

2019-11-10 19:54:05
字體:
來源:轉載
供稿:網友

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

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

遞推關系代數化:設使該字符串前i個和后j個完全相同至少所需添加的字符個數為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[?][?]的時候,該字符串就變成了回文串。然后根據表達的意思,應該是min{a[i][j](i+j==n||i+j==n-1)}。(n為字符總個數)沒仔細看,內存太小了!得用滾動數組(不知道是不是這個名字),反正就是兩個一維數組滾動著用唄。也沒仔細看時間復雜度,這么仔細一想,時間復雜度O(n^2);

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漯河市| 疏勒县| 嵩明县| 民县| 南部县| 库伦旗| 珠海市| 繁峙县| 滦南县| 名山县| 唐海县| 石门县| 龙陵县| 同心县| 永兴县| 林甸县| 海丰县| 武汉市| 富宁县| 微博| 驻马店市| 内黄县| 元氏县| 厦门市| 嘉定区| 肥西县| 志丹县| 和平县| 西吉县| 内江市| 沈丘县| 陇南市| 东辽县| 辽宁省| 八宿县| 白城市| 黔南| 乌鲁木齐市| 娱乐| 嘉峪关市| 稷山县|