字符串-替换空格

作者: 小八是怪兽 | 来源:发表于2020-03-09 13:17 被阅读0次

    题目:请实现一个函数,把字符串的每个空格换成“%20”。
    思路:

    1. 将字符串遍历一遍,返回字符串中存在的空格个数。
    2. 使用两个指针,old指向原字符串末尾,new指向新字符串末尾(即原字符串长度+2*空格数)。
    3. 使用循环从新旧两个字符串的尾部开始向前遍历一遍,若old指向字符,则将字符复制到新的字符串new_str中,同时old - 1; new - 1
    4. 若old指向的是空格,则新字符串中按位依次填上 0 - 2 - %,同时 old -1;new - 3
    5. 循环结束条件: 直到old不再小于new

    代码 (python)

    def replaceblank(astr):
        # 遍历找出原字符串中空格的数量blank. -- step 1
        blank = 0
        for i in range(len(astr)):
            if astr[i] == ' ':
                blank += 1
        # 构建old与new两个指针 -- step 2
        old = len(astr) - 1      
        new = old + 2*blank
        new_str = [None for i in range(new+1)] 
        while old <= new:  
        #step 4
            if astr[old] == ' ':
                new_str[new] = '0'
                new_str[new-1] = '2'
                new_str[new-2] = '%'
                new = new - 3
            else:
       #step 3
                new_str[new] = astr[old]
                new = new - 1
            old = old - 1
           
        return ''.join(new_str)
    

    注意:

    • 循环条件为old <= new 而不是old < new

    相关文章

      网友评论

        本文标题:字符串-替换空格

        本文链接:https://www.haomeiwen.com/subject/ufojectx.html