zoukankan      html  css  js  c++  java
  • 0005剑指offer替换空格python&golang实现 Marathon

    请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

    示例 1:

    输入:s = "We are happy."
    输出:"We%20are%20happy."

    限制:

    0 <= s 的长度 <= 10000

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof

    python

    # 剑指005-替换空格
    class Solution:
        def replaceSpace1(self, s: str) -> str:
            """
            遍历字符串,时间O(n), 空间O(n)
            :param s:
            :return:
            """
            res = []
            for i in range(len(s)):
                if s[i] == ' ':
                    res.append("%20")
                else:
                    res.append(s[i])
            return ''.join(res)
    
        def replaceSpace2(self, s: str) -> str:
            """
            扩充字符串+双指针
            :param s:
            :return:
            """
            cnt = 0
            for i in s:
                if i == ' ':
                    cnt += 1
            res = [""] * (len(s) + 2*cnt)
            i = len(s) - 1
            j = len(s) + 2*cnt - 1
            while i >= 0:
                if s[i] != ' ':
                    res[j] = s[i]
                    j -= 1
                else:
                    res[j-2] = '%'
                    res[j-1] = '2'
                    res[j] = '0'
                    j -= 3
                i -= 1
            return ''.join(res)
    
    
    if __name__ == "__main__":
        s = "sky is blue "
        test = Solution()
        print(test.replaceSpace1(s))
        print(test.replaceSpace2(s))
    

    golang

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	s := "blue is my skay"
    	fmt.Println(replaceSpace1(s))
    }
    
    // 遍历字符串
    func replaceSpace1(s string) string {
    	res := []string{}
    	for i := 0; i < len(s); i++ {
    		if string(s[i]) == " " {
    			res = append(res, "%20")
    		} else {
    			res = append(res, string(s[i]))
    		}
    	}
    	return strings.Join(res, "")
    }
    
  • 相关阅读:
    IOS8定位
    ios通讯录基本操作2014-12月版
    ios悬浮按钮的实现
    MartinLiPageScrollView广告栏实现
    ios分享(友盟分享)
    vue2.0路由-适合刚接触新手简单理解
    git链接GitHub命令及基本操作
    Node
    JS数组sort()排序
    原生JS获取CSS样式并修改
  • 原文地址:https://www.cnblogs.com/davis12/p/15468874.html
Copyright © 2011-2022 走看看