2129将标题首字母大写 | 算法(附全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(2129)将标题首字母大写
一 题目描述
二 解法总览(思维导图)
三 全部解法
1 方案1
1)代码:
// 方案1 “字符串切割成数组 - 处理法”。 // 思路: // 1)状态初始化:const wordList = title.split(' '), l = wordList.length; let resStr = '' 。 // 2)核心:遍历 wordList 。 // 2.1)若 当前word的长度小于 3,则 将word里的所有字符串转成小写。 // 2.2)若 当前word的长度大于 3,则 将word里的首字母大写、剩余的全小写。 // 2.3)resStr 后面,拼上 word + ' ' 。 // 3)resStr 后面,去掉多余的 ' ' 。 // 4)返回结果 resStr 。 var capitalizeTitle = function(title) { // 1)状态初始化:const wordList = title.split(' '), l = wordList.length; let resStr = '' 。 const wordList = title.split(' '), l = wordList.length; let resStr = ''; // 2)核心:遍历 wordList 。 for (let i = 0; i < l; i++) { let word = wordList[i]; // 2.1)若 当前word的长度小于 3,则 将word里的所有字符串转成小写。 if (word.length < 3) { word = word.toLowerCase(); } // 2.2)若 当前word的长度大于 3,则 将word里的首字母大写、剩余的全小写。 else { word = word.toLowerCase(); word = word[0].toUpperCase() + word.slice(1); } // 2.3)resStr 后面,拼上 word + ' ' 。 resStr += word + ' '; } // 3)resStr 后面,去掉多余的 ' ' 。 resStr = resStr.slice(0, resStr.length - 1); // 4)返回结果 resStr 。 return resStr; };
2 方案2
1)代码:
// 方案2 “1行代码 - 装X法”。 // 技巧:将1个数组(多个元素) 变成 字符串(1个元素),n(多个) 到 1(单个)优先考虑使用数组里的 reduce 方法。 // 思路: // 1)通过 字符串的split 方法,按照 空格 将字符串 title 分割成数组。 // 2)通过 数组的reduce 方法,不断依据 cur值、更新acc值(别忘了有 return !)。 // 3)去除末尾多余的 ' '。 var capitalizeTitle = function(title) { return title.split(' ').reduce((acc, cur) => { return acc += ((cur.length < 3 ? (cur.toLowerCase()) : (cur[0].toUpperCase() + cur.slice(1).toLowerCase())) + ' '); }, '').slice(0, -1); }
四 资源分享 & 更多
1 历史文章 - 总览
2 【资源分享】算法通关 + 面试宝典算法通关 + 面试宝典
1)算法通关40讲(极客 - 外企大佬讲的): 链接: https://pan.baidu.com/s/1C175QEmcAunjnCzYzoLBz 提取码: hjna 2)动态规划专题(价值几百美刀~):https://www.bilibili.com/video/BV1nt4y1Y7nz 3)前端面经: 3.1)https://www.nowcoder.com/tutorial/96 3.2)https://muyiy.cn/question 3.3)https://hub.fastgit.org/haizlin/fe-interview/blob/master/category/history.md 注:若失效请前往VX公众号: 码农三少 ,发送关键字: LeetCode 或 算法 ,即可获取最新的链接~
3 博主简介
码农三少 ,一个致力于编写 极简、但齐全题解(算法) 的博主。
专注于 一题多解、结构化思维 ,欢迎一起刷穿 LeetCode ~