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

溫馨提示×

溫馨提示×

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

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

Java回文串檢測與字符串相似度計算的結合

發布時間:2024-11-11 18:39:44 來源:億速云 閱讀:79 作者:小樊 欄目:編程語言

在Java中,我們可以結合回文串檢測和字符串相似度計算來開發一個程序,該程序可以檢測一個字符串是否為回文串,并計算它與另一個字符串的相似度。以下是一個簡單的示例:

public class PalindromeAndSimilarity {

    public static void main(String[] args) {
        String str1 = "racecar";
        String str2 = "hello";

        System.out.println("Is \"" + str1 + "\" a palindrome? " + isPalindrome(str1));
        System.out.println("Similarity between \"" + str1 + "\" and \"" + str2 + "\": " + calculateSimilarity(str1, str2));
    }

    public static boolean isPalindrome(String str) {
        int left = 0;
        int right = str.length() - 1;

        while (left < right) {
            if (str.charAt(left) != str.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }

        return true;
    }

    public static double calculateSimilarity(String str1, String str2) {
        int len1 = str1.length();
        int len2 = str2.length();

        if (len1 == 0 || len2 == 0) {
            return 0.0;
        }

        int maxLength = Math.max(len1, len2);
        int minLength = Math.min(len1, len2);

        int[][] dp = new int[maxLength + 1][maxLength + 1];

        for (int i = 0; i <= maxLength; i++) {
            dp[i][0] = i;
        }

        for (int j = 0; j <= maxLength; j++) {
            dp[0][j] = j;
        }

        for (int i = 1; i <= maxLength; i++) {
            for (int j = 1; j <= maxLength; j++) {
                if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1];
                } else {
                    dp[i][j] = Math.min(dp[i - 1][j], Math.min(dp[i][j - 1], dp[i - 1][j - 1])) + 1;
                }
            }
        }

        return (double) dp[len1][len2] / (len1 + len2);
    }
}

在這個示例中,我們首先定義了一個isPalindrome方法來檢測一個字符串是否為回文串。然后,我們定義了一個calculateSimilarity方法來計算兩個字符串之間的相似度。這里我們使用了動態規劃算法來計算最長公共子序列(LCS)的長度,然后將其除以兩個字符串的總長度以得到相似度。

main方法中,我們測試了這兩個方法,并輸出了結果。

向AI問一下細節

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

AI

漳州市| 英山县| 博湖县| 喜德县| 瑞金市| 开原市| 盘锦市| 察隅县| 商丘市| 黄龙县| 古交市| 仙桃市| 怀来县| 嘉鱼县| 宝鸡市| 无棣县| 日土县| 巴林右旗| 公安县| 马龙县| 吉木乃县| 屏南县| 扶余县| 南宁市| 阳谷县| 阿鲁科尔沁旗| 松滋市| 沭阳县| 沿河| 上林县| 武乡县| 灵武市| 石门县| 林西县| 旺苍县| 克什克腾旗| 万安县| 横山县| 左权县| 南昌县| 盐边县|