导读:
分类:技术干货
题目:替换空格
一起重温《剑指offer》
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
1.能不能允许连续出现多个空格?
2.若有可能连续多个空格,用多个还是单个20%进行替换?
1.不会出现连续多个空格:
直接用空格将字符串切割成数组,在用20%进行连接。
function replaceSpace(str)
{
return str.split(' ').join('%20');
}
2.允许出现多个空格,每个空格均用一个20%替换:
用正则表达式找到所有空格依次替换
function replaceSpace(str)
{
return str.replace(/\s/g,'%20');
}
3.允许出现多个空格,多个空格用一个20%替换: 用正则表达式找到连续空格进行替换
function replaceSpace(str)
{
return str.replace(/\s+/g,'%20');
}
《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;面试中的各种能力,本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;两个面试案例,这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。