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();
    }
}
全部评论

相关推荐

今天 09:30
复旦大学 Java
投递美团等公司10个岗位
点赞 评论 收藏
分享
天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务