LeetCode每日一题:剑指 Offer 05. 替换空格

思路一:使用额外的集合辅助求解

构建一个StringBuffer,遍历字符串,如果不是空格就直接加入StringBuffer中,如果是空格的话就添加"%20"进StringBuffer中,最后返回结果。
时间复杂度:O(n) ,只遍历了一次字符串。
空间复杂度:O(n),使用了大小为n的额外空间

  • 代码实现:
class Solution {
 public String replaceSpace(String s) {
    if(s.length() == 0){
        return s;
    }
    StringBuffer res = new StringBuffer();
    int index = 0;
    while(index < s.length()){
        char a = s.charAt(index);
        if(a != ' '){
            res.append(a);
        }else{
            res.append("%20");
        }
        index++;
    }
    return res.toString();
 }
} 

解法二,直接调用API

  • 代码:
class Solution {
 public String replaceSpace(String s) {
     if(s.length() == 0){
         return s;
     }
    return s.replace(" ", "%20");
 }
}

你可能感兴趣的:(LeetCode每日一题:剑指 Offer 05. 替换空格)