您好,登錄后才能下訂單哦!
在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
,表示輸入字符串是一個包含特殊字符的回文串。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。