ChatGPT刷力扣面试题 01.03. URL化

题目描述

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

示例 1:

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

输入:"               ", 5
输出:"%20%20%20%20%20"
 
提示:
字符串长度在 [0, 500000] 范围内。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/string-to-url-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

开始解题(JavaScript)

逐步验算

吸收学习

吸收学习一下JavaScript示例代码中的slice函数和encodeURL函数

slice函数

JavaScript中的slice()函数用于截取数组或字符串的一部分,并返回一个新的数组或字符串。slice()函数接受两个参数:起始索引和结束索引(可选)。起始索引表示截取的起始位置(包含该位置的元素),结束索引表示截取的结束位置(不包含该位置的元素)。

语法:

  • 对于数组:array.slice(start, end)
  • 对于字符串:string.slice(start, end)

示例:

  1. 对于数组:
    var array = [1, 2, 3, 4, 5]; var newArray = array.slice(1, 4); console.log(newArray); // 输出:[2, 3, 4]
  2. 对于字符串:
    var string = "Hello, world!"; var newString = string.slice(7, 12); console.log(newString); // 输出:"world"

注意事项:

  • 如果省略结束索引,则会截取从起始索引到数组或字符串末尾的所有元素。
  • 如果起始索引或结束索引为负数,则表示从末尾开始计算的位置,例如-1表示最后一个元素。
  • slice()函数不会改变原始数组或字符串,而是返回一个新的数组或字符串。

需要注意的是,数组和字符串的截取操作有一些细微的差异。在字符串中,slice()函数会返回一个新的字符串,而在数组中,slice()函数会返回一个新的数组。

encodeURIComponent()函数

在JavaScript中,可以使用内置的encodeURIComponent()函数来对URL进行编码。该函数用于将URL中的特殊字符转换为它们的编码表示,以便在URL中安全使用。编码后的URL可以通过decodeURIComponent()函数进行解码。

语法:

encodeURIComponent(uri)

示例:

var url = "https://www.example.com/?name=John Smith";
var encodedURL = encodeURIComponent(url);
console.log(encodedURL); // 输出:"https%3A%2F%2Fwww.example.com%2F%3Fname%3DJohn%20Smith"

在上述示例中,encodeURIComponent()函数将URL中的特殊字符进行了编码,包括冒号、斜杠和问号等。编码后的URL可以作为参数传递给其他函数或用于构建完整的URL。

需要注意的是,encodeURIComponent()函数对所有非字母数字字符进行编码,包括一些保留字符(如冒号、斜杠、问号、等号)和特殊字符(如空格、引号、尖括号等)。这意味着编码后的URL可能会比原始URL长。而对于整个URL的编码,可以使用encodeURI()函数。

猜你喜欢

转载自blog.csdn.net/qq_39154376/article/details/131835887