栈的变相面试题:(将字符串逆序)

本文介绍了一个使用栈实现的字符串逆序算法。通过读取用户输入的字符串,利用栈的先进后出特性,逐个字符压栈再弹出,从而达到字符串逆序的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写一个算法,将字符串逆序

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;



public class ReverseApp{
   public static void main(String args[]) throws IOException{
	   String input,output;
	   while(true){
		   System.out.print("请输入一个字符串");
		   System.out.flush();
		   input=getString();
		   if(input.equals(" ")){
		   	 break;
		   }
		   
		   Reverser theReverser=new Reverser(input);
		   output=theReverser.doRev();
		   System.out.println("反转后是"+output);
	
		}
	}
	
	public static String getString()throws IOException{
		InputStreamReader isr=new InputStreamReader(System.in);
		BufferedReader br=new BufferedReader(isr);
		String s=br.readLine();
		return s;
	}

}



class Reverser{
	
		private String input;
		private String output;
		
		public Reverser(String in){
			input=in;
		}
		
		//执行反转
		public String doRev(){
			int stackSize=input.length();
			Stackx theStack = new Stackx(stackSize);
			
			for(int j=0; j<input.length();j++){
				char ch=input.charAt(j);
				theStack.push(ch);
			}	
			
			output=" ";
			while(!theStack.isEmpty()){
				char ch=theStack.pop();
				output=output+ch;
			}
			return output;
		}
}		
		
	
	
//栈  
class Stackx{
	//三个必须元素
	private int maxSize;
	private char[] stackArray;
	private int top;	
	
	//构造栈
	public Stackx(int s){
	 maxSize=s;
	 stackArray=new char[maxSize];
	 top=-1;//栈为空
	}
	
	//栈所具有的动作
	public void push(char j){
	stackArray[++top]=j;//创建顶层空间并插入值
	}		
	public char pop(){
	 return stackArray[top--];
	}
	public char peek(){
	 return stackArray[top];
	}			
	public boolean isEmpty(){
	 return (top==-1);
	}
	public boolean isFull(){
	 return (top==maxSize-1);
	}
		
}	


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值