剑指 Offer 05. 替换空格 简单
生活随笔
收集整理的這篇文章主要介紹了
剑指 Offer 05. 替换空格 简单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
劍指 Offer 05. 替換空格
- 問題:
- 思路:
- 1. 方法(一):使用額外空間
- 2. 在原空間上擴展,利用雙指針。
問題:
請實現一個函數,把字符串 s 中的每個空格替換成"%20"。
示例 1:輸入:s = "We are happy." 輸出:"We%20are%20happy."思路:
1. 方法(一):使用額外空間
代碼:
class Solution { public:string replaceSpace(string s) {string res="";for(auto c:s){if(c==' '){// res.push_back('%');// res.push_back('2');// res.push_back('0');res+="%20";}else// res.push_back(c);res+=c;}return res;} };2. 在原空間上擴展,利用雙指針。
代碼:
class Solution { public:string replaceSpace(string s) {int count=0;int length=s.length(); //s的原長度for(int i=0;i<length;i++){if(s[i]==' ') count++;}int new_length=length+count*2; //要輸出的結果的s的長度s.resize(new_length); //進行擴容 方式1//方式2// for(int i=0;i<count;i++)// s+="00";//兩指針,從后到前開始換值。//為什么是從后到前呢?因為這個是值往后面移,如果是從前往//后,會出現原s被新s覆蓋的情況,丟失原值。for(int i=new_length-1, j=length-1;i>=0;i--,j--){if(s[j]!=' ')s[i]=s[j];else {s[i]='0';s[i-1]='2';s[i-2]='%';i-=2;}}return s;} };總結
以上是生活随笔為你收集整理的剑指 Offer 05. 替换空格 简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 基本功之(一)入门知识点
- 下一篇: 剑指 Offer 11. 旋转数组的最小