溫馨提示×

溫馨提示×

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

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

Java中如何檢測包含特殊字符的回文串

發(fā)布時間:2024-11-11 16:39:41 來源:億速云 閱讀:78 作者:小樊 欄目:編程語言

在Java中,要檢測一個字符串是否是包含特殊字符的回文串,你可以先將字符串中的字母和數(shù)字提取出來,然后檢查剩余的特殊字符是否對稱

import java.util.HashSet;
import java.util.Set;

public class PalindromeWithSpecialChars {
    public static void main(String[] args) {
        String input = "A man, a plan, a canal: Panama";
        System.out.println("Is the input a palindrome with special characters? " + isPalindromeWithSpecialChars(input));
    }

    public static boolean isPalindromeWithSpecialChars(String input) {
        Set<Character> lettersAndDigits = new HashSet<>();
        for (char c : input.toCharArray()) {
            if (Character.isLetterOrDigit(c)) {
                lettersAndDigits.add(Character.toLowerCase(c));
            }
        }

        int left = 0;
        int right = lettersAndDigits.size() - 1;
        while (left < right) {
            if (!lettersAndDigits.contains(Character.toLowerCase(input.charAt(left)))) {
                return false;
            }
            if (!lettersAndDigits.contains(Character.toLowerCase(input.charAt(right)))) {
                return false;
            }
            left++;
            right--;
        }

        return true;
    }
}

在這個示例中,我們首先創(chuàng)建了一個HashSet來存儲輸入字符串中的字母和數(shù)字。然后,我們遍歷輸入字符串的每個字符,如果字符是字母或數(shù)字,我們將其轉換為小寫并添加到HashSet中。接下來,我們使用雙指針方法從HashSet的兩端向中間移動,檢查每個字符是否存在。如果在任何時候發(fā)現(xiàn)字符不存在于HashSet中,我們就返回false。如果我們成功地檢查了整個HashSet,那么我們返回true,表示輸入字符串是一個包含特殊字符的回文串。

向AI問一下細節(jié)

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

AI