Title Case a Sentence算法
题目
确保字符串的每个单词首字母都大写,其余部分小写。像’the’和’of’这样的连接符同理。
String.split()
- titleCase(“I’m a little tea pot”) 应该返回一个字符串.
- titleCase(“I’m a little tea pot”) 应该返回 “I’m A Little Tea Pot”.
- titleCase(“sHoRt AnD sToUt”)应该返回 “Short And Stout”.
- titleCase(“HERE IS MY HANDLE HERE IS MY SPOUT”) 应该返回 “Here Is My Handle Here Is My Spout”.
思路
拿到这道题目的时候,距离上一次刷算法已经是3年前了,作为现在初学javascript的菜鸟,好多方法都得现去查找,这个不知道不要紧,但是思路很重要,所以我当时的想法就是一步一步来呗。
- 先将字符串全部转换为小写字母,而且把他分割成数组。
- 然后遍历数组,方法是将首字母大写,然后其他字母小写,但是后来我发现多此一举了,因为你最开始第一步全部都把字母转换为了小写字母了。
代码
1 | function titleCase(str) { |
但是后来认为性能不足,没错,就是上面那个所谓的
i < array.length;
没缓存,影响性能。
定义一个变量,缓存一下,然后又优化了一下代码。
最终代码
1 | function titleCase(str) { |
在javascript算法道路上越战越勇!
Title Case a Sentence算法