难度简单455
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
(资料图片仅供参考)
示例 1:
输入:s = "We are happy."输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
通过次数635,989提交次数843,510
class Solution {
public:
string replaceSpace(string s) {
string ans;
for(auto a:s){
if(a==' '){
ans+="%20";
}else{
ans+=a;
}
}
return ans;
}
};
思路:
时间复杂度:O(n) 空间复杂度: O(n)
开一个新的字符串来存答案,当检测到是空格时将%20存到答案串中,不是空格时将字符存入到答案串中
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.resize(s.size()+count*2);
int sNewSize = s.size();
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;
}
};
思路:
双指针法,时间复杂度 O(n),空间复杂度O(1)
先数清楚字符串中有多少个空格,将原来的字符串resize成可以装下答案字符串的长度
让快指针指向倒数原串的末尾,让慢指针指向新的字符串长度的末尾
快慢指针不断往后移动
当快指针指向的是字符时,就让慢指针将指向的位置改成字符
当快指针指向的是空格时,就让慢指针将指向的位置与后两个位置分别改成‘0’ ‘2’ ‘%’,然后慢指针-2迭代
云南锗业(SZ002428,收盘价:11 88元)4月12日发布公告称,2023年5月10日(星期三)下午14:30,公司将在云南省昆明市呈贡新区马金铺电力装备园魁
苏州银行9月27日公告,近日,公司收到股东虹达运输出具的《关于股份减持计划实施完毕的告知函》,虹达运输于2022年9月2
4月7日,原省教育厅副巡视员、现省教育厅关工委常务副主任丁光明,省教育厅老干部处处长、一级调研员、省教育厅关工委秘书长王筱亭一行四人,
外交部发言人汪文斌宣布:应国务委员兼外交部长秦刚邀请,德国外长贝尔伯克将于4月13日至15日对中国进行正式访问。其间,秦
4月11日,记者从湖北省科技厅获悉,据国家科技型中小企业库数据显示,今年一季度全省科技型中小企业入选国家库数量达12309家,同比增长86 84%
周口日报全媒体记者张猛通讯员吴丽苹连日来,西华县西夏亭镇党委、政府通过组织发动、党员带动、党群互动,全面开展“拆、改、清”行动,持续
俞敏洪出手!罕见超级激励:普通员工人均拿400多万!“董宇辉们”一夜暴富?,股权,俞敏洪,董宇辉,新东方,科学家,投资者
中国网是国务院新闻办公室领导,中国外文出版发行事业局管理的国家重点新闻网站。本网通过10个语种11个文版,24小时对外发布信息,是中国进行
在这个草长莺飞的美好季节,新泾镇的一棵距今已有300年历史的银杏树也悄悄吐出了绿芽,抽出了新叶,在暖阳春风的沐浴下恣意生
一日元是多少人民币,1日元兑换多少人民币(2023年4月11日)金投外汇网行情中心每日更新。
X 关闭
X 关闭