# 【leetcode刷题日记】剑指 Offer 05. 替换空格

【leetcode刷题日记】剑指 Offer 05. 替换空格

问题描述

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例

输入:s = "We are happy."
输出:"We%20are%20happy."

解法

1.求字符串的原有长度len和含空格数量count
2.建立新字符串,令其长度为len+2*count;
3.对新字符串从后向前填充,遇到空格依次填充0,2,%

class Solution {
    public String replaceSpace(String s) {

        int len = s.length();
        int spaceCount = 0;
        for(int i=0;i<len;i++){
            if(s.charAt(i) == ' '){
                spaceCount++;
            }
        }

        int newLen = len + spaceCount*2;
        char[] res = new char[newLen];

        for(int i=newLen-1,j=len-1 ;i>=0 && j>=0;i--,j--){
            char temp = s.charAt(j);
            if(temp != ' '){
                res[i] = temp;
            }else{
                res[i] = '0';
                res[--i] = '2';
                res[--i] = '%';
            }
        }
        return new String(res);

    }
}
posted @ 2023-01-20 11:01  小耳朵a  阅读(9)  评论(0)    收藏  举报