锁定老帖子 主题:栈的变相面试题:(将字符串逆序)
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-10
最后修改:2009-09-10
写一个算法,将字符串逆序 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); } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-09-10
Java数据结构和算法中文第二版里面有讲过...
|
|
返回顶楼 | |
发表时间:2009-09-10
字符串是数组实现的。就不用这样复杂了把。直接用数组把。
|
|
返回顶楼 | |
发表时间:2009-09-10
rain2005 写道 字符串是数组实现的。就不用这样复杂了把。直接用数组把。
方法很多的 跟着转载的好几种方法 这是为了体现栈。一楼说的很正确 这就是书上那个算法 |
|
返回顶楼 | |
发表时间:2009-09-14
高耦合的代码啊......重构下吧
|
|
返回顶楼 | |
发表时间:2009-09-14
应该用C来写.....而不是java
|
|
返回顶楼 | |
发表时间:2009-09-14
恩,我也觉得对要求效率的算法确实要用c写,再用jni调调。
|
|
返回顶楼 | |
发表时间:2009-09-14
caiwenhn2008 写道 恩,我也觉得对要求效率的算法确实要用c写,再用jni调调。 感谢啊 小弟学习了 |
|
返回顶楼 | |
发表时间:2009-09-15
caiwenhn2008 写道 恩,我也觉得对要求效率的算法确实要用c写,再用jni调调。
学习了 |
|
返回顶楼 | |
发表时间:2009-09-15
StringUtils.reverse
|
|
返回顶楼 | |