刷题时遇到的经典解法(实时更新)
1.威尔史密斯的儿子贾登史密斯是电影的明星,如空手道小子(2010)和地球之后(2013)。Jaden也以他通过Twitter提供的一些哲学而闻名。在Twitter上写作时,他几乎总是将每个单词都用于大写。
你的任务是将字符串转换为Jaden Smith编写的字符串。这些字符串是来自Jaden Smith的实际引用,但它们没有像他最初输入的那样大写。
(也就是说将一个句子每一个单词的开头字母大写);
例:
Not Jaden-Cased: "How can mirrors be real if our eyes aren't real"
Jaden-Cased: "How Can Mirrors Be Real If Our Eyes Aren't Real"
解法:
String.prototype.toJadenCase = function () {//他人解法
return this.replace(/(^|\s)[a-z]/g, function(x){ return x.toUpperCase(); });//正则替换
};
String.prototype.toJadenCase = function () {//我的解法
var arr = this.split(" ");
for(var i=0;i<arr.length;i++){
var n = arr[i].slice(0,1);
var reg = new RegExp(`^${n}`,"ig");
n = n.toUpperCase();
arr[i] = arr[i].replace(reg,n);
}
var s = arr.join(" ");
return s;
};
2.数字根是数字中所有数字的递归和。给定n,取n的数字之和。如果该值有两位数,则以这种方式继续减少,直到产生一位数字。这仅适用于自然数。
例:
digital_root(16) => 1 + 6 => 7
digital_root(942) => 9 + 4 + 2 => 15 ... => 1 + 5 => 6
解法:
function digital_root(n) {//他人解法
return (n - 1) % 9 + 1;
}
/*function digital_root(n){//我的解法
var x = 0;
if(n>=10){
x += n%10;
n = parseInt(n/10);
}else{
return n;
}
return digital_root(x+digital_root(n));
}*/
3.通常当您购买某物时,系统会询问您的信用卡号,电话号码或最安全问题的答案是否仍然正确。但是,由于有人可能会看到你的肩膀,你不希望屏幕上显示。相反,我们掩盖它。
你的任务是编写一个函数maskify
,它将除最后四个字符之外的所有字符都改为'#'
。
(也就是说隐藏部分密码)
例子
maskify("4556364607935616") == "############5616"
maskify( "64607935616") == "#######5616"
maskify( "1") == "1" maskify( "") == "" // "What was the name of your first pet?" maskify("Skippy") == "##ippy" maskify("Nananananananananananananananana Batman!") == "####################################man!"解法:function maskify(cc) { return cc.replace(/.(?=....)/g, '#'); }//利用正则表达式结合断言解决function maskify(cc) { return cc.slice(0, -4).replace(/./g, '#') + cc.slice(-4); }//利用字符串截取和正则表达式解决function maskify(cc) { if(cc.length<4){ return cc; }else{ var str = `${cc.charAt(cc.length-4)}${cc.charAt(cc.length-3)}${cc.charAt(cc.length-2)}${cc.charAt(cc.length-1)}`; var s = str.padStart(cc.length,'#');//利用新增方法头部补全解决 return s; }
}
4.
编写一个方法,将一系列连续(递增)字母作为输入,并返回数组中缺少的字母。
您将始终获得有效的数组。它总会丢失一个字母。数组的长度始终至少为2. 数组中只包含一个字母。
例:
['a','b','c','d','f'] -> 'e'
['O','Q','R','S'] -> 'P'
解法:
function findMissingLetter(array)
{
var arr=[];
var n;
for(var i = 0;i<array.length;i++){
arr.push(array[i].charCodeAt());
}
for(var j = 0;j<arr.length;j++){
if(arr[j+1]-arr[j]==2){
n=arr[j]+1;
}
}
return String.fromCharCode(n);
}
5.皮特喜欢烤一些蛋糕。他有一些食谱和配料。不幸的是,他在数学上并不擅长。你可以帮他找一下,考虑到他的食谱,他可以烘烤多少块蛋糕?
编写一个函数cakes(),它接受配方(对象)和可用成分(也是一个对象)并返回Pete可以烘焙的最大蛋糕数(整数)。为简单起见,没有单位的数量(例如1磅面粉或200克糖只是1或200)。对象中不存在的成分可以视为0。
例子:
// must return 2
cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200});
// must return 0
cakes({apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000});
解法:
function cakes(recipe, available) {
var arr = [];
for(var i in recipe){
if(!available[i]){
return 0;
}
if(available[i]/recipe[i]>=1){
arr.push(parseInt(available[i]/recipe[i]));
}else{
return 0;
}
}
return Math.min(...arr);(es6扩展运算符了解一下)
}
console.log(cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200}));
console.log(cakes({apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000}));
转载于:https://www.cnblogs.com/xinyouhunran/p/9466982.html
刷题时遇到的经典解法(实时更新)相关推荐
- LeetCode:数组刷题(17道经典题目)
LeetCode 数组刷题(17道经典题目) 本文带来的是以数组为主题的经典题目,主要实现是C++,部分题目也用Python实现了. 704. 二分查找 35.搜索插入位置 34. 在排序数组中查找元 ...
- 关于我在刷题时用OJ判题发现的cout相较于printf严重超时的问题
今天刷题时碰到用cout输出时时间时printf的20多倍的情况,不知道时OJ的判题机制还是cout在效率上的问题? 仅作展示,我也不知道为啥,有大佬解答一下吗? 题目如下: 题目名称:血色先锋队 时 ...
- 算法刷题时经常用到的前缀和思想
今天我们来说一下刷题时经常用到的前缀和思想,前缀和思想和滑动窗口会经常用在求子数组和子串问题上,当我们遇到此类问题时,则应该需要想到此类解题方式,该文章深入浅出描述前缀和思想,读完这个文章就会有属于自 ...
- ACM比赛经验、刷题记录及模板库总结(更新中)
前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...
- 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)...
今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...
- 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)......
今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...
- CSDN产品公告:APP新增大厂在线刷题功能、博主排名规则更新、MD编辑器优化
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blogdev.blog.csdn.net/article/deta ...
- 【牛客刷题】java编程笔试题(更新)
目录 统计出现次数top n的字符串 求最后一个有效字符下标 复杂链表的复制 删除链表中重复的结点 删除链表的节点 二叉树的深度 二叉搜索树的第k个节点 二叉树的镜像 判断是不是平衡二叉树 二叉搜索树 ...
- 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)
讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...
- CSDN产品公告第1期:APP新增大厂在线刷题功能、博主排名规则更新、MD编辑器优化
用户为本,让用户成为CSDN产品的主人,为此,我们特开设了CSDN产品公告栏,切实听取大家对新功能的反馈,定期抽取部分反馈用户赠送精美礼品一份! 在过去一周,CSDN研发团队又上线了哪些功能呢?一起看 ...
最新文章
- 【大数据实时计算框架】Storm框架
- 关于jquery的$.fn和$
- NBT:牛瘤胃微生物组的参考基因组集
- 加速 cinder 删除volume速度
- tensors used as indices must be long or byte tensors
- 时间序列数据的存储和计算 - 开源时序数据库解析
- 百度编辑器图片上传 java_百度编辑器粘贴图片自动上传到服务器(Java版)
- Linux学习总结(七十四)自动化运维之ansible
- 解决问题--Maven,IDEA项目External Libraries下只有jdk没有maven依赖
- 网页的根标记是 html,网页的根标记是,主体标记是_________。
- 汇编Masm更改颜色
- EditText属性输入框Kotlin.Android
- 免费OCR文字识别软件,识别图片文字
- Oracle Database Link基础
- 大数据就业前景分析-好程序员
- 携手并进,利尔达科技集团与中国计量大学举办捐赠签约仪式
- 【TVOS】媒体融合 智慧乡村——TVOS绍兴试点项目正式启动
- Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足。。。的解决方案
- 抖音android 语言英语,谁都能抖音教英语吗?
- Java实现月工资个人所得税及各保险计算问题(2022年版)