自己费了九牛二虎之力,看过答案,过了很久后 写的代码:
1 class Solution { 2 public: 3 void replaceSpace(char *str,int length) { 4 int num0 = 0; 5 for(int i =0 ;i< length ;i++){ 6 if(str[i]== ' '){ 7 num0++; 8 } 9 }10 int num = 2 * num0; //这里一开始忘了,导致溢出,后来又乘以3 更加不对了11 int j = 0;12 for (int i = 0 ;i
榜首答案:虽然思想一样,但是人家的特别干练,且变量的赋值很讲究。
1 class Solution { 2 public: 3 void replaceSpace(char *str,int length) { 4 if(str==NULL) 5 return ; 6 int CountOfBlanks=0; 7 int Originallength=0; 8 for(int i=0;str[i]!='\0';i++) 9 {10 Originallength++;11 if(str[i]==' ')12 ++CountOfBlanks;13 }14 int len =Originallength+2*CountOfBlanks;15 if(len+1>length)16 return ;17 18 char*pStr1=str+Originallength;//复制结束符‘\0’19 char*pStr2=str+len;20 while(pStr1
这件事告诉我们。有时候倒着做就可以了,题目一种思路 倒着进行
发现用python 简直无敌啊。像学习c的,思维都比较死板 按部就班,但是python就不一样了,很是活跃啊
1 # -*- coding:utf-8 -*-2 class Solution:3 # s 源字符串4 def replaceSpace(self, s):5 # write code here6 s = s.replace(' ','%20')7 return s
这里的
s.replace(' ','%20') 必须等于一个值,要不然没变化