用堆栈和队列实现判断回文

xuancao 2004-03-27 02:57:07
/**
* @descript: 自定义队列类
* 根据需要只提供插入,取出,判断是否为空方法
* @author : dalily
* @date : 2004-3-27
*/

import java.util.*;
public class Queue
{
//存储队列中数据
private List list = new ArrayList();

//队列中的起始位置
private int iPosition = 0;

//队列插入
public void insert(Object obj){
list.add(obj);
}

//队列取出
public Object get(){
Object obj = list.get(iPosition);
list.remove(iPosition);
return obj;

}
//队列是否为空
public boolean isEmpty(){
return list.size()==0?true:false;
}

}

/**
* @descript: 判断字符串是否为回文
* @author : dalily
* @date : 2004-3-27
*/
import java.util.Stack;

public class ReturnString{

//将原始数据压入到堆栈里面
public static Stack pushStack(String strTemp){
Stack stack = new Stack();
for (int i = 0;i<strTemp.length();i++){
stack.push(String.valueOf(strTemp.charAt(i)));
}
return stack;

}

//将原始数据存入队列
public static Queue insertQueue(String strTemp){
Queue queue = new Queue();
for (int i = 0;i<strTemp.length();i++){
queue.insert(String.valueOf(strTemp.charAt(i)));
}
return queue;

}

//判断队列和堆栈是否相等
public static boolean isEquals(Stack stack, Queue queue){

boolean bFlag = true;

//存储临时堆栈内容
String strTempStack = "";

//存储临时队列内容
String strTempQueue = "";

//循环判断不相等的字符
while (!stack.empty()){
strTempStack = stack.pop().toString();
strTempQueue = queue.get().toString();
if (!strTempStack.equals(strTempQueue)){
bFlag = false;
}
}
return bFlag;
}

//判断该字符串是否为回文
public static boolean isReturnString(String str){
Stack stack = pushStack(str);
Queue queue = insertQueue(str);
return isEquals(stack,queue);
}

//测试程序
public static void main(String[] args)
{
String strTest = "ads112da";
System.out.println("the result is :" + isReturnString(strTest));
}
}

...全文
537 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧