码迷,mamicode.com
首页 > 其他好文 > 详细

Easy | 剑指 Offer 05. 替换空格

时间:2021-01-26 12:00:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:思路   valueof   ring   res   字符   输入   ret   lse   target   

剑指 Offer 05. 替换空格

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

示例 1:

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

限制:

0 <= s 的长度 <= 10000

解题思路

先扫描数组, 统计空格的数量, 每个空格替换成%20之后, 字符长度增加2.于是可以依次得到字符的总长度。然后再次扫描数组, 不过是从右往左扫描并赋值。遇到控制时, 就连续赋值三个字符。

public String replaceSpace(String s) {
    if (s == null || s.length() == 0) {
        return "";
    } 
    int spaceCount = 0;
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) == ‘ ‘) {
            spaceCount++;
        }
    }
    char[] res = new char[s.length()+2*spaceCount];
    for(int i = s.length()-1, j = res.length - 1; i >= 0; i--) {
        if (s.charAt(i) != ‘ ‘) {
            res[j] = s.charAt(i);
            j--;
        } else {
            res[j--] = ‘0‘; 
            res[j--] = ‘2‘;
            res[j--] = ‘%‘;
        }
    }
    return String.valueOf(res);
}

Easy | 剑指 Offer 05. 替换空格

标签:思路   valueof   ring   res   字符   输入   ret   lse   target   

原文地址:https://www.cnblogs.com/chenrj97/p/14321223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!