`
李梓钺
  • 浏览: 29405 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

前端面试的两道编程题目

阅读更多
	/*面试题:随机给出一串整数,取最长的连续数组,如[6,7,11,9,12,14,13,15] 得出[11,12,13,14,15]*/
	function maxContinueArray(input){
		if(!input&&input.length===0)return;
		var tempArray=[],maxArray=[],tempInt,nextInt,index,size,flag=false;
		var sort_array=input.sort(function(a,b){return a-b;});
		for(index=0,size=sort_array.length;index<size;index++){
			tempInt=Number(sort_array[index]);
			nextInt=Number(sort_array[index+1]);//数组溢出的时候返回NaN
			tempArray.push(tempInt);
			if(flag=(tempInt+1)===nextInt?false:true){
				if(Math.max(tempArray.length,maxArray.length)===tempArray.length){
						maxArray=tempArray.slice(0);		
				}
				tempArray=[];
			}	
		}
		return maxArray;
	}

 

	/*面试题:大整数相加,支持超出整数类型的长度,用数组表示*/
	function plus(input,input2){
		if(input===undefined||input.length===0)return;
		if(input2===undefined||input2.length===0)return;
	 	var str1=String(input),str2=String(input2),result='';
	 	 
	 	result=str1.length>str2.length?calcu(str1,str2):calcu(str2,str1);
	    function calcu(m,s){
	 		var a,b,c,d=0,ret=[],i=0,sSize=s.length;
	 		for(var index=m.length-1;index>=0;index--){
	 				++i;
	 			   a=m[index];
	 			   b=s[sSize-i]||0;
	 			   c=Number(a)+Number(b)+d;
	 			if(c<10){
	 				ret.push(c);
	 				d=0;	
	 			}else{
	 				ret.push((c-10));
	 			   d=1;
	 			}
	 		}
	 		return ret.reverse().join('');
	 	} 
	 	return result;
	}

 今天去面试了,结果题目做得一团遭, 两条编程题直接用笔写,还真是有难度, 写了1个钟,结果回家在firefox上测试,全部输出错误, 题目一加了一些多余的判断,导致了输出永远是第一个连续数组。

题目二, 压根就不用看,进位的时候,我都忘记去减10, 还有计算出来的结果忘记逆序输出, oh, my god, 学艺不精。

上网看了人家一篇大整数相加,一测试,跟我写的一样的不够健壮。

function add(a, b){
    var SPLITE_LENGTH = 3;
    var aL = String(a), bL = String(b);
    var resout = '', c = 0;
    while(aL != 0 || bL != 0){
        var aR = aL.slice(-SPLITE_LENGTH), bR = bL.slice(-SPLITE_LENGTH);
        var t = String(parseInt(aR) + parseInt(bR) + c);
        resout = t.slice(-SPLITE_LENGTH) + resout; // 字符拼接
        c = parseInt(t.slice(0, -SPLITE_LENGTH)||'0');
        aL = aL.slice(0, -SPLITE_LENGTH)||'0';
        bL = bL.slice(0, -SPLITE_LENGTH)||'0';
        console.log(resout, aL, bL, c);
    }
    if(c){
        resout = String(c) + resout;
    }
    return resout;
}

测试用例:

1.大正整数

plus(123151541512315150, 48154546104815460)

输出: "171306087617130610"

add(123151541512315150, 48154546104815460)

输出: "171306087617130610"

2.负数
plus(-123151541512315150, 48154546104815460)
输出: "NaN171306087617130610"
add(-123151541512315150, 48154546104815460)
输出:"NaN171306087617130610"
3.输出小数:
plus(-12315154151231.5150, 48154546104815460)
输出:"NaN17130608761713NaN976"
add(-12315154151231.5150, 48154546104815460);
输出:"NaN171306087616846976":
边界考虑完全不足,哎,要参考一下bigNumber.js这个开源项目是怎么实现的,那个才是正真的实现大数据相加。在代码里面应该体现出负数和小数处理的分支
 
分享到:
评论

相关推荐

    前端面试之道(网页版).zip

    《前端面试之道》是一份全面覆盖前端开发面试知识点的资源包,旨在帮助应聘者准备前端开发岗位的面试。这份资料包含36个不同主题的课程,涵盖了前端开发领域的方方面面,对于想要深入理解前端技术或者提升面试技巧的...

    96道web前端面试题96道web前端面试题.pdf

    在准备web前端面试时,面试官可能会考察求职者对基础知识的掌握情况以及解决实际问题的能力。以下是根据给定文件内容整理出的知识点: 1. 自我介绍是面试的开场环节,除了基本个人信息外,面试者应该突出自己的技术...

    前端面试之道.rar

    "前端面试之道.rar"这个压缩包文件包含了作者精心整理的前端面试经典题目,旨在帮助面试者更好地理解和应对各种面试挑战。下面,我们将深入探讨其中可能涉及的一些核心前端知识点。 1. HTML与CSS基础: - HTML结构...

    前端上机面试题

    在前端上机面试中,经常会遇到要求实现一系列交互功能,如数据渲染、筛选、分页以及导航等。根据提供的描述,以下是对这些知识点的详细解释: ...对于面试题,展示良好的编程习惯和问题解决能力同样重要。

    2017前端开发最新面试题

    其次,前端框架的掌握是现代前端面试的重点。2017年,React、Angular和Vue.js是最热门的三大框架。React以其组件化思想和虚拟DOM技术受到广泛青睐,面试中可能问到React的基本组件、状态管理(如Redux)、生命周期...

    2022前端面试题及答案

    本文总结了2022年前端面试题及答案,涵盖了HTML、CSS、JavaScript、AJAX、jQuery、移动开发、Vue等多个方面,旨在帮助读者更好地准备前端面试。 一、HTML部分 HTML(HyperText Markup Language)是标准通用标记...

    2022年最新(腾讯)前端面试题真题解析

    3. **JavaScript深入**:面试题可能包含异步编程(Promise、async/await)、原型链、this指向、事件循环、垃圾回收等JavaScript高级特性,这些都是前端开发者需要深入理解的关键点。 4. **前端性能优化**:面试中...

    前端大厂最新面试题-2020阿里高德前端社招面经.docx

    前端大厂最新面试题-2020阿里高德前端社招面经 今天,我将为您讲解前端大厂最新面试题-2020阿里高德前端社招面经.docx这个文件的知识点。这个文件包含了阿里高德前端社招面经的部分内容,涵盖了前端工程师面试的多...

    最全前端面试资源(视频讲解,面试题,文档)

    面试题部分是复习和自我检测的关键,它可能包含了常见的编程题、算法题,例如数组操作、字符串处理、数据结构、时间复杂度分析等。同时,也会有针对前端项目经验、设计模式、前端性能优化、跨域解决方案、前端安全等...

    前端面试题-手写代码实现

    在前端面试中,手写代码能力不仅要求开发者能够流畅地编写代码,还要求对常用的编程概念有深入的理解。常见的手写代码题目可能包括但不限于数据结构、算法、DOM操作、网络请求、事件处理等。 描述中的“小米、快手...

    前端面试100题,面试题源代码

    3. **JavaScript**:JavaScript是前端开发的灵魂,面试题可能包括变量、数据类型、作用域、闭包、原型链、异步编程(回调、Promise、async/await)、DOM操作等。 4. **浏览器工作原理**:理解浏览器如何解析HTML、...

    前端面试宝典 v1.pdf

    《前端面试宝典 v1.pdf》是一本专为前端开发者准备的面试指南,它涵盖了前端领域的核心知识点,旨在帮助读者全面了解和掌握前端面试中可能遇到的问题和解答技巧。本书内容丰富,深入浅出,是准备前端面试者的必备...

    最新各大厂前端面试题以及答案.rar

    这份名为"最新各大厂前端面试题以及答案.rar"的压缩包文件,显然汇集了淘宝、阿里、京东、美团等知名企业的前端面试题目及参考答案,旨在帮助求职者更好地准备面试,提升通过率。下面,我们将详细探讨这些标签所涵盖...

    6月最新大厂前端高频面试题.pdf

    高频面试题可能会涉及JavaScript的高级概念,如作用域链、闭包、原型链、异步编程(Promise、async/await)、模块化(ES6模块、CommonJS)等。面试者应能够深入理解这些概念,并能够通过实际案例展示其应用。 5. ...

    2023前端面试八股文.pdf

    在前端面试中,JavaScript 是一个核心话题,对于求职者来说,深入理解其数据类型、类型检测以及特殊值如 null 和 undefined 的区别至关重要。下面我们将详细讨论这些知识点。 首先,JavaScript 有八种数据类型,...

    2021年前端面试题汇总 高清pdf完整版

    《2021年前端面试题汇总》是一个全面的前端面试资源,涵盖了JavaScript基础到高级、CSS以及常用Web框架的相关面试题目。这份资料对于正在准备前端面试的开发者来说,是一份极具价值的学习材料。以下是对其中关键知识...

    前端75道经典面试题.rar

    在准备前端面试的过程中,了解并熟练掌握各类面试题是至关重要的。"前端75道经典面试题.rar"这个压缩包提供了互联网大厂常问的75道前端面试题,覆盖了基础到进阶的多个层面,是提升你面试能力的理想资料。以下是一些...

    2022年最新前端面试题(字节跳动)真题解析

    以下是对2021年字节跳动前端面试题的详细解析,旨在帮助你全面理解前端技术栈的核心知识和面试技巧。 1. HTML与CSS基础: - 了解HTML5的新特性,如离线存储、拖放功能、媒体元素等。 - CSS布局:盒模型、Flexbox...

    前端面试题汇总.rar

    在准备前端面试的过程中,了解和掌握一系列核心概念是至关重要的。这份"前端面试题汇总"包含了许多关键领域的知识点,从基础到高级,涵盖了前端开发者必须熟悉的各项技能。 首先,HTML(超文本标记语言)是构建网页...

Global site tag (gtag.js) - Google Analytics