Skip to content

Latest commit

 

History

History
97 lines (71 loc) · 2.37 KB

README.md

File metadata and controls

97 lines (71 loc) · 2.37 KB

English Version

题目描述

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)

示例1:

 输入:"Mr John Smith    ", 13
 输出:"Mr%20John%20Smith"

示例2:

 输入:"               ", 5
 输出:"%20%20%20%20%20"

提示:

  1. 字符串长度在[0, 500000]范围内。

解法

Python3

直接利用 replace 将所有 替换为 %20

class Solution:
    def replaceSpaces(self, S: str, length: int) -> str:
        return S[:length].replace(' ', '%20')

初始化一个空列表 chars,遍历字符串中每个字符 c,遇到空格字符时,往 chars 中追加元素 %20,否则追加 c。最后返回 ''.join(chars) 即可。

class Solution:
    def replaceSpaces(self, S: str, length: int) -> str:
        chars = []
        for c in S[:length]:
            chars.append('%20' if c == ' ' else c)
        return ''.join(chars)

Java

class Solution {
    public String replaceSpaces(String S, int length) {
        char[] chars = S.toCharArray();
        int j = chars.length;
        for (int i = length - 1; i >= 0; --i) {
            if (chars[i] == ' ') {
                chars[--j] = '0';
                chars[--j] = '2';
                chars[--j] = '%';
            } else {
                chars[--j] = chars[i];
            }
        }
        return new String(chars, j, chars.length - j);
    }
}

JavaScript

/**
 * @param {string} S
 * @param {number} length
 * @return {string}
 */
var replaceSpaces = function(S, length) {
    return encodeURI(S.substring(0,length));
};

...