棧和隊列是Java中常用的數據結構,它們可以被用來判斷一個字符串是否是回文數。
先來了解一下什么是回文數?;匚臄抵傅氖钦x和倒著讀都一樣的數字,比如121、1221、12321等。
在Java中,我們可以使用棧和隊列來實現回文數的判斷。具體來說,我們可以把輸入的數轉化為字符串,然后把字符串每個字母依次入隊列和棧。
接著進行判斷,每次從隊列和棧中分別出隊和出棧一個字母,比較它們是否相等。如果相等,繼續取下一個,否則就不是回文數了。
下面是Java代碼的實現:
import java.util.*; public class Palindrome { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a number: "); String str = sc.nextLine(); Queuequeue = new LinkedList (); Stack stack = new Stack (); for(int i = 0; i< str.length() ; i++) { queue.add(str.charAt(i)); stack.push(str.charAt(i)); } boolean isPalindrome = true; while (!queue.isEmpty()) { if (!queue.remove().equals(stack.pop())) { isPalindrome = false; break; } } if (isPalindrome) { System.out.println(str + " is a palindrome number."); } else { System.out.println(str + " is not a palindrome number."); } } }
這段代碼首先從鍵盤輸入一個數字,然后創建一個隊列和一個棧,遍歷字符串中的每個字符,將它們分別入隊和入棧。之后,代碼使用一個循環來比較隊列中的字符和棧中出棧的字符,如果都相等則是回文數,否則不是。
這就是一種使用Java中棧和隊列的方法來判斷回文數的例子。
上一篇php list運算