色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java用棧和隊列判斷回文

劉柏宏1年前9瀏覽0評論

回文是指從前往后和從后往前都一樣的單詞或短語。Java提供了棧和隊列的數據結構可以用來判斷一個字符串是否回文。

首先我們來看看用棧判斷回文的方法。棧是一種后進先出的數據結構,我們可以把字符串的每個字符依次壓入棧中,再依次彈出棧中的字符與原字符串比較,如果相同則繼續比較,直到棧為空或不相同,如果一直相同直到棧為空,那么這個字符串就是回文。

public static boolean isPalindromeByStack(String str) {
Stackstack = new Stack<>();
for (int i = 0; i< str.length(); i++) {
stack.push(str.charAt(i));
}
StringBuilder builder = new StringBuilder();
while (!stack.empty()) {
builder.append(stack.pop());
}
return builder.toString().equalsIgnoreCase(str);
}

以上就是用棧判斷回文的方法。

接下來我們來看看用隊列判斷回文的方法。隊列是一種先進先出的數據結構,我們可以把字符串的每個字符依次加入隊列中,再從隊列頭和隊列尾依次彈出字符進行比較,如果相同則繼續比較,直到隊列為空或不相同,如果一直相同直到隊列為空,那么這個字符串就是回文。

public static boolean isPalindromeByQueue(String str) {
Queuequeue = new LinkedList<>();
for (int i = 0; i< str.length(); i++) {
queue.offer(str.charAt(i));
}
StringBuilder builder = new StringBuilder();
while (!queue.isEmpty()) {
builder.append(queue.poll());
}
return builder.toString().equalsIgnoreCase(str);
}

以上就是用隊列判斷回文的方法。

綜上所述,棧和隊列都可以用來判斷回文。但是棧的空間復雜度較高,因為需要開辟額外的空間來存儲字符。而隊列的空間復雜度較低,并且可以利用LinkedList來實現循環隊列優化空間復雜度,因此推薦使用隊列來判斷回文。