JAVA栈-实现字符串反转
2018-03-01 08:48
323 查看
一、需求分析
前段时间出去招聘,主要是面向大四学生,问的问题都比较基础,其中也问了一个在网上可以找见的题目,如何实现字符串反转,我发现很多同学都是有一定思路的,比如反向遍历,或者使用stringbuilder.reverse等都可以,然而这里我们要分享的是通过栈来实现。栈是一种先进后出的数据结构,恰好可以用来实现对字符串的反转操作。
二、代码实现
import java.util.Arrays;
public class Java栈<T> {
private Object[] array = null;
private int size = 0;
private static final int DEFAULR_INITIAL_SIZE = 10;
private int capacity = 0;
public Java栈() {
this(DEFAULR_INITIAL_SIZE);
}
public Java栈(int initial_size) {
super();
this.capacity = initial_size;
array = new Object[initial_size];
}
@SuppressWarnings("unchecked")
public T pop() {
if (size < 1) {
throw new IllegalStateException("no more elements");
}
T result = (T) array[--size];
array[size] = null;
return result;
}
@SuppressWarnings("unchecked")
public T peek() {
if (size < 1) {
throw new IllegalStateException("no more elements");
}
return (T) array[size - 1];
}
public void push(T e) {
int index = size++;
if (index > capacity) { // 扩容
int new_capacity = capacity + capacity >> 1;
if (new_capacity <= 0) {
new_capacity = Integer.MAX_VALUE;
}
array = Arrays.copyOf(array, new_capacity);
}
array[index] = e;
}
public int getSize() {
return size;
}
public static void main(String[] args) {
Java栈<String> simpleStack = new Java栈<String>();
System.out.print("输入字符串abcde");
simpleStack.push("a");
simpleStack.push("b");
simpleStack.push("c");
simpleStack.push("d");
simpleStack.push("e");
StringBuilder builder = new StringBuilder();
for(int i=0;i<simpleStack.size;) {
String value = simpleStack.pop();
builder.append(value);
}
System.out.println("\t");
System.out.print("输出字符串" + builder.toString().trim());
}
}运行效果输入字符串abcde
输出字符串edcba
相关文章推荐
- 怎么实现字符串的反转,如:输入abc,输出cba
- 字符串反转实现
- java如何实现一个字符串的反转和替换
- C语言实现字符串的反转输出
- 实现字符串反转
- 【面试经典题之字符串】用C或C++写一个函数,实现反转一个null结尾的字符串
- java实现字符串反转
- [Python]实现字符串反转的三个方法
- Python 实现字符串反转的四种方法
- 用递归实现字符串反转
- 用C++实现void reverse(char* str)函数,即反转一个null结尾的字符串.
- JAVA实现字符串反转,借助字符数组实现
- java实现字符串指定的部分进行反转
- 基础算法----实现反转字符串
- 字符串的反转及用功能实现
- javascript 实现字符串反转的方法
- 栈(stack) 实现字符串反转
- Java 字符串反转实现代码
- 模拟实现一个字符串的反转
- 1.2 实现C语言风格的字符串反转的算法