亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java實現基于Boyer-Moore算法的回文串搜索

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

Boyer-Moore算法是一種高效的字符串搜索算法,它通過預處理模式串來跳過一些不必要的比較

public class BoyerMoorePalindromeSearch {

    public static void main(String[] args) {
        String text = "abccbaabc";
        String pattern = "abc";
        int index = search(text, pattern);
        if (index != -1) {
            System.out.println("Pattern found at index: " + index);
        } else {
            System.out.println("Pattern not found");
        }
    }

    public static int search(String text, String pattern) {
        if (text == null || pattern == null || text.length() < pattern.length()) {
            return -1;
        }

        // 預處理模式串
        int[] badCharacterShift = new int[256];
        preprocess(pattern, badCharacterShift);

        int i = 0; // text的索引
        int j = pattern.length() - 1; // pattern的索引

        while (i <= text.length() - pattern.length()) {
            if (pattern.charAt(j) == text.charAt(i)) {
                if (j == 0) {
                    return i; // 匹配成功
                }
                i++;
                j--;
            } else {
                int shift = badCharacterShift[text.charAt(i)];
                if (shift == 0) {
                    shift = pattern.length() - j;
                }
                i += Math.max(1, shift); // 跳過不需要比較的字符
                j = pattern.length() - 1;
            }
        }

        return -1; // 匹配失敗
    }

    private static void preprocess(String pattern, int[] badCharacterShift) {
        int m = pattern.length();
        for (int i = 0; i < m; i++) {
            badCharacterShift[pattern.charAt(i)] = m - i;
        }
    }
}

這個程序首先定義了一個search方法,該方法接受兩個字符串參數:textpatternpreprocess方法用于預處理模式串,計算每個字符在模式串中最后出現的位置。在search方法中,我們使用雙指針技術從textpattern的開頭開始比較字符。如果字符匹配,我們將指針向前移動;否則,我們根據badCharacterShift數組跳過一些不需要比較的字符。如果在text中找到了pattern,則返回其起始索引;否則,返回-1。

向AI問一下細節

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

AI

奉贤区| 革吉县| 澄江县| 长寿区| 射阳县| 双柏县| 长岛县| 方山县| 兰州市| 宜昌市| 都兰县| 永泰县| 丹江口市| 闻喜县| 湖北省| 酉阳| 建德市| 钟祥市| 泸定县| 泾川县| 榆中县| 米脂县| 独山县| 尼木县| 普宁市| 吉首市| 上虞市| 壶关县| 普格县| 东至县| 涡阳县| 鸡泽县| 彭阳县| 潍坊市| 扎鲁特旗| 甘肃省| 布拖县| 铁力市| 灵川县| 宜兰县| 侯马市|