Java日记2018-05-25

  1. 替换空格
    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为 We Are Happy. 则经过替换之后的字符串为 We%20Are%20Happy。
    本来以为算法很清晰很简单,结果卡壳,最后发现是填充时候错误,一个空格填3个,实际应该补2个字符
public static String replaceSpace(StringBuffer str) {
        if(str==null) return null;
        int oldLen = str.length();
        for(int i =0;i<str.length();i++) {
            if(str.charAt(i)==' ') {
                str.append("%2");//这里应该补两个字符
            }
        }
        System.out.println("2:"+str.toString());
        int p1 = oldLen - 1, p2 = str.length() - 1;
        while(p1>=0&&p2>p1) {
            if(str.charAt(p1)==' '){
                str.setCharAt(p2, '0');
                str.setCharAt(p2-1, '2');
                str.setCharAt(p2-2, '%');
                p2=p2-3;
                p1--;
                //System.out.println("p2:"+p2);
                System.out.println("1:"+str.toString());
            } else {
                str.setCharAt(p2, str.charAt(p1));
                p1--;
                p2--;
                //System.out.println("p1:"+p1+" p2:"+p2);
                System.out.println("2:"+str.toString());
            }
        }
        
        System.out.println("+:"+str.toString());
        return str.toString();
    }
  1. 从尾到头打印链表
    递归
public ArrayList<Integer> printListFromTailToHead(ListNode node){
        Stack<Integer> sta = new Stack<>();
        while(node!=null) {
            sta.add(node.val);
            node=node.next;
        }
        ArrayList<Integer> ret = new ArrayList<>();
        while(sta.isEmpty()==false) {
            ret.add(sta.pop());
        }
        return ret;
        
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...
    Observer_____阅读 8,209评论 0 1
  • 昨天早上电面了爱奇艺的开发测试,我觉得爱奇艺不重视技术,爱奇艺的觉得我业务不太一致,互相应付草草了事。 事后想想这...
    hayes0420阅读 1,166评论 0 0
  • 上火车,啃着上午我妈给我买的鸡翅,看着窗外的草木街巷一一去我南逝...天色阴阴的,赶紧给我妈发个短信说已经上车了。...
    5779cc3e3627阅读 1,769评论 0 0
  • 花开最美是初恋,心花怒放春一片。 山好水好人也好,失去之时丧家犬。
    老槐树阅读 1,211评论 0 2
  • 1.Activity启动流程 (7.0版本之前) 从startActivity()开始,最终都会调用startAc...
    那时青菜阅读 5,910评论 0 31

友情链接更多精彩内容