失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 一道简简单单的字节跳动算法面试题

一道简简单单的字节跳动算法面试题

时间:2023-10-14 14:31:43

相关推荐

一道简简单单的字节跳动算法面试题

点击上方“图解面试算法”,选择“星标”公众号

重磅干货,第一时间送达

今天分享的题目来源于 LeetCode 上的剑指 Offer 系列面试题05. 替换空格,据官方统计,近半年在字节跳动算法面试中出现过 5 次。

题目链接:https://leetcode-/problems/ti-huan-kong-ge-lcof/

一、题目描述

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

示例 1:

输入:s="Wearehappy."输出:"We%20are%20happy."

限制:

0 <= s 的长度 <= 10000

二、题目解析

这题还是挺简单的。

遍历字符串中的每个字符,如果不是空格,直接赋值过去数组中;否则,赋值%20过去数组中。

最后,从数组中的前size个字符创建新字符串,并返回新字符串。

三、动画描述

四、图片描述

五、参考代码

//来源:https://leetcode-/problems/ti-huan-kong-ge-lcof/solution/mian-shi-ti-05-ti-huan-kong-ge-by-leetcode-solutio/classSolution{publicStringreplaceSpace(Strings){//获取字符串s的长度lengthintlength=s.length();//创建字符数组array,其长度为length*3char[]array=newchar[length*3];//初始化size为0,size表示替换后的字符串的长度intsize=0;//从左到右遍历字符串sfor(inti=0;i<length;i++){//获得s的当前字符ccharc=s.charAt(i);//如果字符c是空格,则令array[size]='%',array[size+1]='2',array[size+2]='0',并将size的值加3if(c==''){array[size++]='%';array[size++]='2';array[size++]='0';}else{array[size++]=c;}}//遍历结束之后,size的值等于替换后的字符串的长度,从array的前size个字符创建新字符串,并返回新字符串StringnewStr=newString(array,0,size);returnnewStr;}}

六、复杂度分析

时间复杂度

时间复杂度为 O(n),遍历字符串s一遍。

空间复杂度

空间复杂度:O(n),额外创建字符数组,长度为s的长度的 3 倍。

七、相关标签

字符串

数组

---

由 五分钟学算法 原班人马打造的公众号:图解面试算法,现已正式上线!接下来我们将会在该公众号上,为大家分享优质的算法解题思路,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

如果觉得《一道简简单单的字节跳动算法面试题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。