当前位置: 首页 > news >正文

威海市建设工程协会网站搭建企业网站流程

威海市建设工程协会网站,搭建企业网站流程,网站制作从零开始,wordpress整站密码①这道题可以直接申请一个临时数组,然后遍历字符串,是空格则加入20%,最后再把临时数组转化为字符串。 怎么把一个数组转化为字符串? 如数组arry[], string newstr new string(arry,0,arry.size()-1); return newstr; 而且临时数…


①这道题可以直接申请一个临时数组,然后遍历字符串,是空格则加入20%,最后再把临时数组转化为字符串。
怎么把一个数组转化为字符串?
如数组arry[],
string newstr = new string(arry,0,arry.size()-1);
return newstr;
而且临时数组的空间要申请大一些。
public String replaceSpace(String s) {
        int length = s.length();
        char[] array = new char[length * 3];
        int index = 0;
        for (int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if (c == ' ') {
                array[index++] = '%';
                array[index++] = '2';
                array[index++] = '0';
            } else {
                array[index++] = c;
            }
        }
        String newStr = new String(array, 0, index);
        return newStr;
    }

②或者用栈,只是出栈后结果是需要来个翻转吗?有点不大会。


③不过上面的这些方法都需要时间复杂度O(n),并且空间复杂度O(n)。
接下来有个时间复杂度O(n),但是空间复杂度O(1)的做法,要是学会了也不难,接下来说说这种解法。
这个解法就不需要申请新的空间。
第一步,首先扩充数组到每个空格替换成"%20"之后的大小。
比如这道题,每个空格要变成20%,即一个空格变成了3个空格,所以每个空格处要添加2个空格,即先统计字符串中有多少个空格,然后+多少个空格*2。怎么添加字符串长度?
//s.resize(n); resize将string类中有效字符改变到n个。
第二步,从后向前替换空格,也就是双指针法,过程如下:
i指向新长度的末尾,j指向旧长度的末尾。
然后i,j往前,如果s[j]不是空格则把s[j]赋给s[i]; 如果s[j]是空格,则s[i]赋为0, s[i-1]赋为2, s[i-2]赋为%,并且i往前移三格。然后继续i,j一起往前移继续如此轮下去。


④有同学问了,为什么要从后向前填充,从前向后填充不行么?
从前向后填充就是O(n^2)的算法了,因为每次添加元素都要将添加元素之后的所有元素向后移动。

⑤其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。
这么做有两个好处:
不用申请新数组。
从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题。


当i=j时,即说明扩充的空格都用完了,说明前面已经没有空格要变成20%了,所以就可以结束了,所以循环结束条件就是j<i,而不是j<=i。
 

class Solution {
public:
    string replaceSpace(string s) {
        int count = 0; // 统计空格的个数
        int sOldSize = s.size();
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == ' ') {
                count++;
            }
        }
        // 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小
        s.resize(s.size() + count * 2);
        int sNewSize = s.size();
        // 从后先前将空格替换为"%20"
        for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {
            if (s[j] != ' ') {
                s[i] = s[j];
            } else {
                s[i] = '0';
                s[i - 1] = '2';
                s[i - 2] = '%';
                i -= 2;
            }
        }
        return s;
    }
};
 


 

http://www.laogonggong.com/news/96439.html

相关文章:

  • 公司网站建设备选方案评价标准wordpress会员
  • 杭州 网站建设谷歌外贸推广怎么做
  • 做网站背景图片怎么放WordPress用户中心激活版
  • 尚品宅配网站建设生产管理系统免费版
  • 扶贫网站建设方案wordpress博客主题自媒体
  • wordpress 封ip段seo比较好的公司
  • 做的很好的黑白网站wordpress只显示摘要
  • 找别人做网站的注意事项网站建设与维护参考文献
  • 哪家网站游戏做的比较好的wordpress.htaccess
  • 潍坊最早做网站的公司做网站在哪接广告
  • 天津网站建设公司哪家好wordpress 导航图片
  • 私人定制网站视频网站建设工具
  • 自学网站开发百度云资源中国商标注册网查询网官网
  • 红色为主的网站wordpress外汇主题
  • 网站数据库默认地址wordpress流量统计插件
  • 公司做网站 需要准备什么手机网站建设推广方案ppt模板
  • 建站工具论坛WordPress 4.9添加备案号
  • html网站欣赏wordpress怎么在虚拟主机上搭建
  • 无锡建设网站公司提高网站排名的方法
  • 一键搭建网站系统海外域名怎么打开
  • 求制作网站华强北网站建设设计
  • 做企业信用贷的网站钢模板规格尺寸及厚度
  • 深圳做积分商城网站公司最佳线上网站制作模板
  • 东莞企业模板建站建设文库网站
  • 自己免费做网站有什么用网站开发过程模型
  • 国外 精美 网站云主机与云电脑区别
  • 凡科小程序建站官网WordPress怎么添加留言功能
  • 沧州网站备案代刷网址推广
  • 网站关键词优化外包做网站用哪个eclipse
  • 企业家网站建设个人养老保险账户余额查询