Java中使用一个栈来处理
题目描述
剑指Offer的替换空格
解题思路
新开辟一个栈,然后从尾部向前遍历输入的字符串的每个字符,如果不是空格就直接入栈,如果是空格就依次将'0'、'2'、'%' 入栈。然后通过StringBuffer将栈中的字符连起来就OK啦。
代码实现
import java.util.Stack;
public class Solution {
public String replaceSpace(StringBuffer str) {
String str1 = str.toString();
Stack<Character> res = new Stack<Character>();
for (int i = str1.length() - 1; i >= 0; i--) {
char c = str1.charAt(i);
if (c != ' ') {
res.push(c);
} else {
res.push('0');
res.push('2');
res.push('%');
}
}
StringBuffer sb = new StringBuffer();
while (!res.empty()) {
sb.append(res.pop());
}
return sb.toString();
}
}