零 题目:算法(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 博主简介
码农三少 ,一个致力于编写 极简、但齐全题解(算法) 的博主。
专一于 一题多解、结构化思维 ,欢送一起刷穿 LeetCode ~
发表回复