2 替換空格

2021-09-28 12:49:27 字數 2107 閱讀 2982

c++

class

solution

// 替換空格

int newlength = originallength +

2* numberofblank;

if(newlength+

1>length)

return

;char

*p1 = str+originallength;

// 字元指標指向原始字串的末尾

char

*p2 = str+newlength;

// 字元指標指向替換後字串的末尾

while

(p1!=p2)

else

p1--;}

}};

class

solution

/*original_length為字串str的實際長度*/

int original_length =0;

//原始長度

int number_blank =0;

//空格數

int i=0;

while

(str[i]

!='\0'

)/*new_length為把空格替換成'%20'之後的長度*/

int new_length = original_length +

2* number_blank;

int p1 = original_length;

//原始字串末尾索引值

int p2 = new_length;

//計算長度後的字串末尾索引值

/*index_original指標開始向前移動,如果遇到空格,替換成'%20',否則進行複製操作*/

while

(p1 >=

0&& p2 > p1)

else

p1--;}

}};

python

class

solution

:# s 源字串

defreplacespace

(self, s)

:# write code here

return s.replace(

' ',

'%20'

)

# -*- coding:utf-8 -*-

class

solution

:# s 源字串

defreplacespace

(self, s)

:# write code here

#string(區別於list)是一種不可變的資料型別

if s==

none

:return

; origianl_length=

len(s)

number_blank=

0for i in s:

if i==

' ':

number_blank+=

1 p1=origianl_length-

1 p2=origianl_length+

2*number_blank-

1

new_s=

[' ']*

(p2+1)

while

(p1!=-1

):if s[p1]

==' '

: new_s[p2]

='0'

p2-=

1 new_s[p2]

='2'

p2-=

1 new_s[p2]

='%'

p2-=

1else

: new_s[p2]

=s[p1]

p2-=

1 p1-=

1return

''.join(new_s)

2 替換空格

1 題目 2 程式1 確定變換後陣列的長度,再從後往前更新陣列,記得在最開始要先加 0 class solution int newstrlen strlen spacenum 2 int j newstrlen str j 0 for int i strlen 1 i 0 i else str j...

2 替換空格

暴力法 從頭到尾掃瞄,遇到空格就替換,並將空格之後的所有字元都後移兩個位元組。時間複雜度o n 2 優化 先遍歷一遍字串,這樣就可以統計出字串空格的總數,並可以由此計算出替換之後的字串的總長度。每替換乙個空格,長度增加2,因此替換以後字串的長度等於原來的長度加上2乘以空格數目。之後,我們從字串的尾部...

改變2 替換空格

從前到後統計空格的個數,然後從後到前來逐個插入。一定要記得如果是不知道是哪齣問題的時候就舉個例子,然後從前到後跑一遍 public class solution int i str.length 1 int newlen str.length count 2 int newindex newlen ...