java只用栈判断字符串是否回文

比如输入abcba,abccba,123321,结果输出回文。注意是只用栈哦!先谢谢了!!!思路我已经想好了:先定义一个数组放输入的字符串,若字符串长度为奇数,则去掉最中... 比如输入abcba,abccba,123321,结果输出回文。注意是只用栈哦!先谢谢了!!!
思路我已经想好了:先定义一个数组放输入的字符串,若字符串长度为奇数,则去掉最中间的,前一半字符串入栈,然后与后一半相对应作比较,若完全相同,则输出回文。若字符串长度为偶数,则直接把前一半入栈,然后与后一半相对应的作比较,若完全相同,输出回文。
不知道能不能实现,我写了半天没写成功,求大神指导!!
展开
 我来答
月光雪松
推荐于2017-11-26 · TA获得超过476个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:233万
展开全部
import java.util.ArrayList;
import java.util.List;
public class StackTest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  String str = "abcba";
  System.out.println(str + "回文数:" + isPalindrome(str));
  
  str = "abccba";
  System.out.println(str + "回文数:" + isPalindrome(str));
  
  str = "123321";
  System.out.println(str + "回文数:" + isPalindrome(str));
  
  str = "1238887321";
  System.out.println(str + "回文数:" + isPalindrome(str));
 }
 /**
  * <p>判断输入字符串是否为回文</p>
  * @param pValue String 输入待判定的字符串
  * @return boolean 是否是回文
  */
 public static boolean isPalindrome(String pValue){
  // 堆栈一
  List<Character>  stack = new ArrayList<Character>();
  // 堆栈二
  List<Character>  stack2 = new ArrayList<Character>();
  // 字符串长度的一半
  int haflen = pValue.length()/2;
  
  for(int i=0;i<haflen;i++){
   // 字符进栈
   stack.add(pValue.charAt(i));
   // 倒序进栈
   stack2.add(pValue.charAt(pValue.length()-i-1));
  }
  // 标识符
  boolean bFlag = true;
  // 出栈并比较
  for(int i=haflen-1;i>=0;i--){
   if(stack.remove(i) != stack2.remove(i)){
    bFlag = false;
    break;
   }
  }
  // 返回比对结果
  return bFlag;
 }
}

    你这是作业题吧,其实最简单直接用循环然后charAt()把第一个和最后一个取出来比较就可以了。要用栈的话,我就用List来模拟栈。我们知道栈只有两个基本的操作进栈和出栈,用ArrayList的add(),remove()来模拟进栈和出栈。上面的代码和你的思路是一样的,但是简化掉奇偶数的判定,因为是奇数的时候,最中间一个我们可以不用管它,是偶数的话就是前半部分和后半部分的比较。
Stale331x
2013-11-09 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:834万
展开全部
你这种普遍的输出固然没问题。。但是,如果要用栈处理如下的话,可能就会出错了:
abccbaab11ba
一般处理回文不会用栈结构。。当然,如果你说用两个栈的话,就没什么意义了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式