力扣01 C++string用‘+’拼接可字符可字符串

URL化 https://leetcode-cn.com/problems/string-to-url-lcci/

C++  string拼接即可

string S;
S+="%20";//拼接字符串
S+='c';//拼接字符
Java

char[] S1=new char[length]; 这是字符数组
String S2="***sffk7";这是String字符串
S1=S2.toCharArray();字符串转字符数组
S2=String.valueOf(S1);字符数组转字符串

下面是Java两种方法,法一超时,我查了一下,原因在于:

假如你用”+”来连接固定长度的字符串,性能上会稍受影响, 但是假如你是在循环中来”+”多个串的话, 性能将指数倍的下降。

Java 

class Solution {
    public String replaceSpaces(String S, int length) {
        /*String res="";
        char[] S1;
        S1=S.toCharArray(); //字符串转为字符数组
        for(int i=0;i<length;i++)
        {
            if(S1[i]==' ')
            {
                res+="%20";
            }
             else
            {
                res+=S1[i];
            }
        }
        //S=String.valueOf(S1); //字符数组转为字符串
        return res;*/
        char[] S1=new char[length*3];
        int cnt=0;
        for(int i=0;i<length;i++)
        {
            char ch=S.charAt(i);
            if(ch==' ')
            {
               S1[cnt++]='%';
               S1[cnt++]='2';
               S1[cnt++]='0';
            }
             else
            {
                S1[cnt++]=ch;
            }
        }
        S=new String(S1,0,cnt);
        return S;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值