牛客网剑指offer-02替换空格

来源:互联网 发布:淘宝网创业计划书 编辑:程序博客网 时间:2024/06/06 02:11

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
自己想了一下,感觉没什么思路,就暴力扫描一遍,遇到空格flag记下来,然后把原来的字符串一个一个字符的贴上去,看C++代码

class Solution {public:    void replaceSpace(char *str,int length) {    bool flag[1000001];    memset(flag,0,sizeof(flag));    for(int i=0;i<length;i++)        if(str[i]==' ')            flag[i]=1;    char str2[1000001];    strcpy(str2,str);    int fla=0;    for(int i=0;i<length;i++){        if(!flag[i])        {            str[fla]=str2[i];            fla++;        }        else        {            str[fla]='%';            fla++;            str[fla]='2';            fla++;            str[fla]='0';            fla++;        }    }    }};

如果用java应该很简单,使用StringBuffer里面的自带函数可以实现。

public class Solution {    public String replaceSpace(StringBuffer str) {        if(str==null){            return null;        }       StringBuilder newStr = new StringBuilder();        for(int i=0;i<str.length();i++){            if(str.charAt(i)==' '){                newStr.append('%');                newStr.append('2');                newStr.append('0');            }else{                newStr.append(str.charAt(i));            }        }        return newStr.toString();    }}
0 0
原创粉丝点击