(字符串 ) 剑指 Offer 05. 替换空格 ——【Leetcode每日一题】

news/2024/11/2 11:36:55/

❓剑指 Offer 05. 替换空格

难度:简单

请实现一个函数,把字符串 s 中的每个空格替换成 “%20”。

示例 1:

输入:s = “We are happy.”
输出:“We%20are%20happy.”

限制

  • 0 <= s 的长度 <= 10000

💡思路:双指针法

如果想把这道题目做到极致,就不要只用额外的辅助空间了!

  • 首先扩充数组到每个空格替换成" %20 "之后的大小;
  • i 指向新长度的末尾,j 指向旧长度的末尾;
  • 然后从后向前替换空格,也就是双指针法

过程如下:
在这里插入图片描述

🍁代码:(Java、C++)

Java

class Solution {public String replaceSpace(String s) {if(s.length() == 0 || s == null) return s;StringBuilder str = new StringBuilder();//扩充空间,空格数量2倍for(int i = 0; i < s.length(); i++){if(s.charAt(i) == ' '){str.append("  ");}}if(str.length() == 0) return s;int j = s.length() - 1;//左指针s += str.toString();int i = s.length() - 1;//右指针char[] ch = s.toCharArray();while(j < i){if(ch[j] != ' ') ch[i] = ch[j];else{ch[i--] = '0';ch[i--] = '2';ch[i] = '%';}j--;i--;}return new String(ch);}
}

C++

class Solution {
public:string replaceSpace(string s) {int count = 0; //统计空格的个数for(char c : s){if(c == ' ') count++;}if(count == 0) return s;int n = s.size();s.resize(n + count * 2);for(int j = n - 1, i = n + count * 2 - 1; j < i; i--, j--){//定义左右双指针if(s[j] != ' ') s[i] = s[j];else{s[i--] = '0';s[i--] = '2';s[i] = '%';}}return s;}
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 为字符串 s 的长度。
  • 空间复杂度 O ( 1 ) O(1) O(1) O ( n ) O(n) O(n),取决于使用的语言中字符串类型的性质。如果字符串是可修改的(C++),那么我们可以直接在原字符串上修改,空间复杂度为 O ( 1 ) O(1) O(1),(Java)否则需要使用 O ( n ) O(n) O(n) 的空间将字符串临时转换为可以修改的数据结构(例如数组),空间复杂度为 O ( n ) O(n) O(n)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!


http://www.ppmy.cn/news/144122.html

相关文章

电商 ERP 接口

电商 API 详情接口在 ERP 中的重要性 电商行业的发展已经改变了人们的消费方式。作为一种连续不断涌现并不断发展的新型销售方式&#xff0c;电商具有开创新市场、大众化消费、商业模式的多样化、效率的提高等优势&#xff0c;对传统零售业产生了极大的冲击。而 ERP 作为企业资…

图数据库 NebulaGraph v3.5.0 发布,支持免索引查询、UDF,FIND PATH 性能大幅度提升

本次 v3.5.0 版本主要是优化了 FIND ALL PATH 性能&#xff0c;支持免索引的全表扫描等功能。具体性能提升幅度&#xff0c;记得阅读下周的 NebulaGraph v3.5.0 性能报告。 特性 支持免索引的全表扫描&#xff0c;参见 pr&#xff1a;#5416支持 UDF&#xff0c;参见 pr&#…

uniapp(一) 之 小程序与uniapp 基础

uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到 i OS 、 Android 、 Web &#xff08; 响应式&#xff09;、 以及各种小程序&#xff08;微信 / 支付宝 / 百度 / 头条 / 飞书 /QQ/ 快手 / 钉 钉 / 淘宝&#xff09;、 …

笔记本 续航测试软件,最低5小时起 这些超长续航笔记本你一定不知道

笔记本电脑在发展过程中&#xff0c;除了注重性能提升、轻量化设计之外&#xff0c;另外一点最为重要的进步莫过于降低功耗延长续航能力。大众用户选择购买笔记本电脑&#xff0c;必然会有不插电使用的需求&#xff0c;如商务会谈、差旅办公等&#xff0c;因此长续航笔记本电脑…

dell笔记本外接显示器_小桌面 笔记本外接显示器的正确姿势

小桌面 笔记本外接显示器的正确姿势 2016-05-17 17:54:06 41点赞 142收藏 83评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 先来个主题照热热身,第一次秀 地点是公司宿舍,桌面不是很宽敞 在学校买的14寸的笔记本,屏幕…

笔记本计算机的功率一般多少钱,笔记本功率一般是多少瓦

篇一:电脑各配件功率状况(耗电量)大曝光 电脑教育报 2002-08-29 09:46 篇二:电脑各配件功耗一览表 电脑配件功耗;CPU功耗表;显卡功耗表,硬盘功耗表;内存功耗表(电脑各配件功耗一览表) 2008-09-26 11:57 随着处理器显卡等制程工艺向55NM,45NM升级甚至40,32NM配件功耗在大大…

惠普笔记本苹果w10双系统_大学生笔记本推荐(2020速查版:含轻薄本和游戏本)

最近的一篇&#xff0c;本月16-18日&#xff0c;笔记本将提前大幅度降价&#xff0c;一般会是今年618最低价&#xff0c;如果有调整&#xff0c;一般就是50/100元这样&#xff0c;部分机型可能缺货&#xff0c;如果你比较急用&#xff0c;建议下手&#xff0c;特别是一些首发的…

2018年家用计算机推荐,【小白必看】2018年各价位笔记本电脑推荐!

原标题&#xff1a;【小白必看】2018年各价位笔记本电脑推荐&#xff01; 转眼就8月初了&#xff0c;马上就是一年一度的大学新生入学季了。 对于即将踏入大学校门的学生来说&#xff0c;笔记本电脑可以说是大学生活必不可少的电子产品。 但目前的笔记本电脑太多太杂了&#xf…