劍指offer 2替換空格 c++和python
阿新 • • 發佈:2021-06-10
題目
請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。
c++版
class Solution { public: void replaceSpace(char *str,int length) { string res = ""; for(int i = 0;i < length;++i){ if(str[i]==' '){ res = res + "%20"; } else{ res = res + str[i]; } } return res; } };
其實上面程式碼的這個邏輯是可以的,把void
改成返回值為string
,但是他要求返回值為空,也就是直接修改原來的字串
class Solution { public: void replaceSpace(char *str,int length) { string res(str); //字元陣列變string int i = 0; while(res.find(' ')!=string::npos){ //如果找到空格 i = res.find(' '); //空格所在位置 res.erase(i,1); //刪除這個空格 res.insert(i,"%20"); //在這個位置插入 %20,然後繼續查詢空格 } auto s = res.c_str(); //c_str()函式返回一個指向字元陣列的指標常量, 內容與本res這個string串相同。注意:一定要使用strcpy()函式 等來操作方法c_str()返回的指標。 strcpy(str,s); } };
python版
# -*- coding:utf-8 -*-
class Solution:
# s 源字串
def replaceSpace(self, s):
temp = s.replace(' ',"%20")
return temp
# write code here
或者和c++一樣,一個個替換
# -*- coding:utf-8 -*- class Solution: # s 源字串 def replaceSpace(self, s): res = '' for char in s: if char == ' ': res += '%20' else: res += char return res # write code here