剑指offer:替换空格
生活随笔
收集整理的這篇文章主要介紹了
剑指offer:替换空格
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
替換空格
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串 s 中的每個(gè)空格替換成"%20"。
示例 1:
輸入:s = “We are happy.”
輸出:“We%20are%20happy.”
限制:
0 <= s 的長(zhǎng)度 <= 10000
來(lái)源:力扣(LeetCode)–替換空格
解題
方法一:內(nèi)置函數(shù)
使用python內(nèi)置函數(shù) replace()
str.replace(old, new[, max])
Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過(guò) max 次。
old – 將被替換的子字符串。
new – 新字符串,用于替換old子字符串。
max – 可選字符串, 替換不超過(guò) max 次
返回字符串中的 old(舊字符串) 替換成 new(新字符串)后生成的新字符串,如果指定第三個(gè)參數(shù)max,則替換不超過(guò) max 次。
方法二:遍歷添加
創(chuàng)建一個(gè)新的字符串,依次匹配字符,如果字符為空,則替換并放入新字符串中;如果字符不為空則直接放入新字符串中。
# python class Solution:def replaceSpace(self, s: str) -> str:# 方法二:str_ = ''for i in s:if i == ' ':i ='%20'str_ = str_ + ireturn str_ // java class Solution {public String replaceSpace(String s) {StringBuilder res = new StringBuilder();for(Character c : s.toCharArray()){if(c == ' ') res.append("%20");else res.append(c);}return res.toString();} }復(fù)雜度分析:
時(shí)間復(fù)雜度:O(N)O(N)O(N)
空間復(fù)雜度:O(N)O(N)O(N),新建字符串使用了線性大小的額外空間。
Java、python中的字符串
在 Python 和 Java 等語(yǔ)言中,字符串都被設(shè)計(jì)成不可變的類型,即無(wú)法直接修改字符串的某一位字符,需要新建一個(gè)字符串實(shí)現(xiàn)。
| java | +、StringBuilder.append() | |
| python | +、list.append() and ’ '.join(list) | +適用于較少字符串;list、join()適用于較多字符串的拼接 |
參考文章:
總結(jié)
以上是生活随笔為你收集整理的剑指offer:替换空格的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 二进制异或--7.18待完善
- 下一篇: MatLab基础设置