leetcode 剑指 Offer 05. 替换空格

【题目】剑指 Offer 05. 替换空格

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

示例 1:

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

限制:
0 <= s 的长度 <= 10000

【解题思路1】s.replace() 或者 StringBuilder

class Solution {
    public String replaceSpace(String s) {
        return s.replace(" ","%20");
    }
}
class Solution {
    public String replaceSpace(String s) {
        StringBuilder newS = new StringBuilder();
        for (Character tmp: s.toCharArray()) {
            newS.append(tmp ==' ' ? "%20" : tmp);  // 建议使用三目表达式。相等于if else
        }
        return newS.toString();
    }
}

【解题思路2】char数组

class Solution {
    public String replaceSpace(String s) {
        int length = s.length();
        char[] array = new char[length * 3];
        int size = 0;
        for (int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if (c == ' ') {
                array[size++] = '%';
                array[size++] = '2';
                array[size++] = '0';
            } else {
                array[size++] = c;
            }
        }
        String newStr = new String(array, 0, size);
        return newStr;
    }
}

你可能感兴趣的:(Leetcode,#,字符串)