因此,我正在制定一個程序來識別迴文林(相同的向前和向後的文字)。爲了達到這個目的,我把一個字符串的內容一次放入一個隊列和一個字符堆棧中。然後我有一個for循環比較堆棧的條目和隊列的條目,看看它們是否匹配。如果每個字符都比我們有一個迴文。任何不匹配的字符都會導致匹配標誌變爲假並打破循環。問題是我的for循環不會運行。該程序完全跳過它。事實上它告訴我我的「匹配」變量未被使用。任何幫助,將不勝感激。感謝您閱讀我的文章。檢測迴文林
** 我對我的模糊感到抱歉。堆棧和隊列是我自己設計的類。他們接受一個字符串輸入,將字符串分成字符(字符類型),爲每個字符創建一個節點並連接它們。堆棧先進先出,隊列先進先出。空白1和空白2是作爲每個內部起始標記的空節點。
public void palVerify(String s)
{
boolean match=true;
//creates stack
Stack backward=new Stack(blank1);
backward.push(s);
//creates queue
Queue forward=new Queue(blank2);
forward.enqueue(s);
// THIS LOOP WONT RUN
for (int i=0; i < s.length(); i++)
{
if (backward.readTop()==forward.readFront())
{
backward.pop();
forward.dequeue();
}
else
{
match=false;
break;
}
}
if (match=true)
System.out.println("This word is a Palindrome");
else
System.out.println("This word is not a Palindrome");
}
你能提供您怎麼稱呼palVerfiy()?你也應該給堆棧和隊列一個對象類型。我很驚訝'落後.readTop()== forward.readFront()'甚至編譯。什麼是空白1和空白2? – Grice 2014-10-20 20:14:01
你的意思是'if(match == true)'? – 2014-10-20 20:22:44
除了Andy的評論,你的意思是'if(match)'。請不要陷入'if(match == true)'的反模式。 – pamphlet 2014-10-20 20:26:18