设计一种方法,将一个字符串中的所有空格替换成 %20
。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
你的程序还需要返回被替换后的字符串的长度。
注意事项
如果使用 Java 或 Python, 程序中请用字符数组表示字符串。
样例
对于字符串"Mr John Smith"
, 长度为 13
替换空格之后,参数中的字符串需要变为"Mr%20John%20Smith"
,并且把新长度 17
作为结果返回。
思路:简单题,设置两个指针,从右边向左赋值即可。
class Solution(object):
"""
@param: string: An array of Char
@param: length: The true length of the string
@return: The true length of new string
"""
def replaceBlank(self, string, length):
# write your code here
if length == 0:
return 0
blankCount = 0
for i in string:
if i == ' ':
blankCount += 1
new_length = length + blankCount * 2
leftindex = length - 1
rightindex = new_length - 1
while leftindex >= 0:
if string[leftindex] != ' ':
string[rightindex] = string[leftindex]
rightindex -= 1
leftindex -= 1
else:
string[rightindex] = '0'
string[rightindex - 1] = '2'
string[rightindex - 2] = '%'
rightindex -= 3
leftindex -= 1
return new_length