【剑指Offer 05】替换空格

/**
 * 剑指 Offer 05. 替换空格
 * 思路:如果给定的字符数组能够容纳替换后的字符串,则可以从后开始替换
 * */
public class Solution {
    public String replaceSpace(String s) {
        // 统计空格数量
        int spaces = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ') {
                spaces++;
            }
        }
        // 没有空格提前返回
        if (spaces == 0) {
            return s;
        }
        // 替换空格
        char[] chars = new char[s.length() + spaces * 2];
        for (int i = 0, j = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ') {
                chars[j++] = '%';
                chars[j++] = '2';
                chars[j++] = '0';
            } else {
                chars[j++] = s.charAt(i);
            }
        }
        return new String(chars);
    }
}
posted @ 2022-06-24 19:56  廖子博  阅读(19)  评论(0编辑  收藏  举报