JS | 教练,我想做习题9

🚀 前言

大家好呀,我是毛小悠,可以叫我二毛,在家中排行老二,是一名前端开发工程师。

本系列文章旨在通过练习来提高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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值