🚀 前言
大家好呀,我是毛小悠,可以叫我二毛,在家中排行老二,是一名前端开发工程师。
本系列文章旨在通过练习来提高JavaScript的能力,一起愉快的做题吧。😀😀😀
以下每道题,二毛我都有尝试做一遍。建议限时训练,比如限定为半小时,如果半小时内想不出来,可以结合文章末尾的参考答案来思考。
可以在下方评论区留言或者加我的微信:code_maomao。期待你的到来。
求关注求点赞👍~~~😘😘😘
📖 题目1:标签生成器
营销团队花费太多时间输入标签。
让我们用自己的标签生成器帮助他们!
这是规则:
- 它必须以井号(
#
)开头。 - 所有单词的首字母必须大写。
- 如果最终结果超过140个字符,则必须返回
false
。 - 如果输入或结果为空字符串,则必须返回
false
。
例子
" Hello there thanks for trying my Kata" => "#HelloThereThanksForTryingMyKata"
" Hello World " => "#HelloWorld"
"" => false
习题代码
function generateHashtag (str) {
}
📖 题目2:合并的字符串检查器
您面临编写一个算法来检查给定字符串s是否可以由其他两个字符串part1和part2构成的挑战。
限制是part1和part2中的字符应与s中的顺序相同。
面试官为您提供以下示例,并告诉您从给定的测试案例中找出其余的示例。
例如:
'codewars' is a merge from 'cdw' and 'oears':
s: c o d e w a r s = codewars
part1: c d w = cdw
part2: o e a r s = oears
习题代码
function isMerge(s, part1, part2) {
return false;
}
📖 题目3:约瑟夫斯幸存者
您必须正确返回谁是“幸存者”,即:Josephus排列的最后一个元素。
基本上,假设将n个人围成一个圈,并按照k个元素的步骤将其消除,如下所示:
josephus_survivor(7,3) => means 7 people in a circle;
one every 3 is eliminated until one remains
[1,2,3,4,5,6,7] - initial sequence
[1,2,4,5,6,7] => 3 is counted out
[1,2,4,5,7] => 6 is counted out
[1,4,5,7] => 2 is counted out
[1,4,5] => 7 is counted out
[1,4] => 5 is counted out
[4] => 1 counted out, 4 is the last element - the survivor!
注意和提示:使用另一套解决方案来检查您的功能可能会有所帮助,但是由于将使用更大的数字,因此使用数组/列表来计算幸存者的数量可能会太慢;您可以假设n和k都将始终> = 1。
习题代码
function josephusSurvivor(n,k){
//your code here
}
答案
🍗 题目1的答案
参考答案1:
function generateHashtag (str) {
return str.length > 140 || str === '' ? false :
'#' + str.split(' ').map(capitalize).join('');
}
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1)