• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            poj1159

            Palindrome
            Time Limit: 3000MS Memory Limit: 65536K
            Total Submissions: 40443 Accepted: 13741

            Description

            A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determines the minimal number of characters to be inserted into the string in order to obtain a palindrome.

            As an example, by inserting 2 characters, the string "Ab3bd" can be transformed into a palindrome ("dAb3bAd" or "Adb3bdA"). However, inserting fewer than 2 characters does not produce a palindrome.

            Input

            Your program is to read from standard input. The first line contains one integer: the length of the input string N, 3 <= N <= 5000. The second line contains one string with length N. The string is formed from uppercase letters from 'A' to 'Z', lowercase letters from 'a' to 'z' and digits from '0' to '9'. Uppercase and lowercase letters are to be considered distinct.

            Output

            Your program is to write to standard output. The first line contains one integer, which is the desired minimal number.

            Sample Input

            5
            Ab3bd

            Sample Output

            2
            這題跟編輯距離類似
            由于自己一點思路也沒有
            所以網(wǎng)上找了找題解

            方法1:f[i][j]表示從下標i到下標j最少添加幾個字符構(gòu)成回文


                        f[i][j]=min(f[i+1][j-1],min(f[i][j-1],f[i+1][j])+1)

            方法2:求該串與其反串的最長公共子串的長度,最少添加的次數(shù)就是串長減子串長
            我用第二種方法做的
             
             1#include<stdio.h>
             2#include<string.h>
             3#include<math.h>
             4#define MAX 5005
             5int len,i,j;
             6char s[MAX],s1[MAX];
             7short f[MAX][MAX];
             8int max(int a,int b)
             9{
            10    if (a>b) return a; else return b;
            11}

            12int main()
            13{
            14    scanf("%d",&len);
            15    scanf("%s",&s);
            16    for (i=len-1;i>=0 ;i-- )
            17    {
            18        s[i+1]=s[i];
            19    }

            20    for (i=1;i<=len ;i++ )
            21    {
            22        s1[len-i+1]=s[i];
            23    }

            24    f[0][0]=0;
            25    for (i=1;i<=len ;i++ )
            26    {
            27        for (j=1;j<=len ;j++ )
            28        {
            29            if (s[i]==s1[j])
            30            {
            31                f[i][j]=max(f[i-1][j-1]+1,f[i][j]);
            32            }

            33            f[i][j]=max(f[i][j],f[i-1][j]);
            34            f[i][j]=max(f[i][j],f[i][j-1]);
            35        }

            36    }

            37    printf("%d\n",len-f[len][len]);
            38    return 0;
            39}

            40//當前狀態(tài)僅與上一層狀態(tài)有關(guān),可以用滾動數(shù)組優(yōu)化
            41

            我寫的比較惡心,沒用的東西太多
            Orz大神
             

            posted on 2012-02-20 18:34 jh818012 閱讀(337) 評論(0)  編輯 收藏 引用

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統(tǒng)計

            常用鏈接

            留言簿

            文章檔案(85)

            搜索

            最新評論

            • 1.?re: poj1426
            • 我嚓,,輝哥,,居然搜到你的題解了
            • --season
            • 2.?re: poj3083
            • @王私江
              (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
            • --游客
            • 3.?re: poj3414[未登錄]
            • @王私江
              0ms
            • --jh818012
            • 4.?re: poj3414
            • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
            • --王私江
            • 5.?re: poj1426
            • 評論內(nèi)容較長,點擊標題查看
            • --王私江
            久久亚洲精品国产精品婷婷| 99久久这里只有精品| 久久久久香蕉视频| 香蕉久久永久视频| 99久久国语露脸精品国产| 97超级碰碰碰碰久久久久| 久久久黄色大片| 99久久精品日本一区二区免费| 久久精品国产亚洲一区二区| 久久久久久毛片免费看| 久久精品国产久精国产思思| 久久精品亚洲欧美日韩久久| 久久久久久国产精品免费无码 | 99久久无色码中文字幕| 亚洲另类欧美综合久久图片区| 精品久久无码中文字幕| 国产欧美久久久精品影院| 狠狠色丁香久久婷婷综| 中文字幕人妻色偷偷久久| 国产精品99久久久久久www| 亚洲精品乱码久久久久久蜜桃图片| 91精品国产高清久久久久久国产嫩草 | 久久这里只有精品18| 99蜜桃臀久久久欧美精品网站| 99久久精品九九亚洲精品| 久久香综合精品久久伊人| 一本色道久久综合| 日本精品久久久久影院日本| 成人国内精品久久久久影院VR| 99久久人妻无码精品系列| 国产午夜福利精品久久2021| 亚洲香蕉网久久综合影视| 久久精品国产清自在天天线| 伊人情人综合成人久久网小说| 理论片午午伦夜理片久久| 久久性生大片免费观看性| 久久se精品一区二区影院| 久久精品女人天堂AV麻| 久久丝袜精品中文字幕| 天天做夜夜做久久做狠狠| 一本色综合久久|