91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編寫代碼實現一個字符串的最長回文子序列

發布時間:2021-10-14 15:35:20 來源:億速云 閱讀:126 作者:iii 欄目:編程語言

本篇內容介紹了“如何編寫代碼實現一個字符串的最長回文子序列”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

import java.util.Arrays;

/**
 * @author pxu
 * @create 2021/4/7-5:57 下午
 */
public class Nc154 {
    

    public int longestPalindromeSubSeq (String s) {

        int n = s.length();
        /**
         * 在for循環運行過程中,dp[j]中的數據代表s從i到j的子串中的最長回文序列的長度
         * 在for運行結束后,dp[j]中的數據代表s從0到j的子串中的最長回文序列的長度,所
         * 以程序最后返回的結果就是dp[n-1]的值。
         */
        int[] dp = new int[n];

        /**
         * 填充為1的原因是,每一個字符都是一個長度為1的回文串
         */
        Arrays.fill(dp,1);

        for (int i = n-2;i>=0;i--) {

            /**
             * pre總是代表在字符串s從i+1到j-1的子串的最長的回文序列的長度,所以其初始值被設置為0
             */
            int pre=0;
            for (int j=i+1;j<n;j++) {
                /**
                 * 因為第i個字符可能會和第j個字符結合成回文對,導致原有dp[j]_old的值變為在dp[j-1]基礎上
                 * 增加2形成新的dp[j]_new,但是如果第i個字符也可以和第j+1個字符結合成回文對,這時候
                 * 對于第j+1個字符來說,第j個字符是沒有和第i個字符結合的(因為第i個字符,只能和后面的一個字符結合)
                 * ,所以dp[j+1]的新值應該是dp[j]的舊值的基礎上增加2得到。所以每次進入循環的時候需要把dp[j]的值
                 * 記錄在temp變量中,在本次循環結束之前,將值傳遞給pre,以便于在下一次循環中如果下一個字符也可以
                 * 和第i個字符結合時,更新dp中的值
                 */
                int temp = dp[j];
                if (s.charAt(i) == s.charAt(j)) {
                    dp[j] = pre + 2;
                }else {
                    dp[j] = Math.max(dp[j],dp[j-1]);
                }

                pre = temp;
            }
        }
        return dp[n-1];

    }

}

“如何編寫代碼實現一個字符串的最長回文子序列”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

油尖旺区| 玉环县| 天津市| 孝昌县| 麻江县| 剑川县| 孟连| 宜良县| 德兴市| 太保市| 株洲市| 怀安县| 文成县| 耒阳市| 玛纳斯县| 资兴市| 驻马店市| 仲巴县| 若尔盖县| 禄丰县| 麻栗坡县| 宾阳县| 安化县| 开阳县| 曲阜市| 景宁| 米易县| 柳州市| 嵊泗县| 集贤县| 兴海县| 广汉市| 定远县| 辽阳市| 桐梓县| 九江县| 方山县| 忻城县| 咸阳市| 缙云县| 曲靖市|