>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 기술에 빅데이터 추가 시 문제

JavaScript_javascript 기술에 빅데이터 추가 시 문제

WBOY
WBOY원래의
2016-05-16 18:04:031280검색

Youdao Front End와의 인터뷰에서 나온 인터뷰 질문이기도 합니다.
빅데이터 추가를 처리하는 함수를 작성합니다. 소위 빅데이터는 정수, 긴 정수 등 기존 데이터 유형의 표현 범위를 초과하는 데이터를 말합니다. 구현 언어는 제한되지 않습니다.
JS를 사용하여 구현해봤습니다. 제 생각을 말씀드리자면
1. 우선 이 질문에서 가장 중요한 부분은 빅데이터를 어떻게 저장하느냐 입니다. 저장하려면 어떤 데이터 유형을 사용해야 합니까? 가장 간단하고 실현 가능한 방법은 String
입니다. 2. 데이터를 저장하는 데 사용할 유형을 결정한 후에는 문제가 명확해집니다. 먼저, 들어오는 두 문자열의 길이를 결정하고, 가장 짧은 len 루프를 취하고, 낮은 비트부터 해당 비트를 추가하고, 캐리를 저장하는 데 주의하세요. 짧은 데이터가 처리된 후 캐리는 처리를 위해 긴 문자열의 나머지 부분으로 넘겨집니다.
자세한 구현을 보려면 코드를 살펴보세요.

코드 복사 코드는 다음과 같습니다. :

var strAdd = function(srcA, srcB) {
var i, temp, tempA, tempB, len, lenA, lenB, carry = 0
var res = [] ,
arrA = [],
arrB = [],
cloneArr = []
arrA = srcA.split('')
arrB = srcB.split('') ;
arrB.reverse();
lenA = arrA.length;
lenA > ;
for (i = 0 ; i tempA = parsInt(arrA[i], 10)
tempB =parsInt(arrB[i], 10); >temp = tempA tempB carry
if (temp > 9) {
res.push(temp - 10)
carry = 1
} else {
res.push( temp);
carry = 0 ;
}
}
cloneArr = lenA > arrA : arrB
for (; i < cloneArr.length; i ) >tempA = parsInt(cloneArr[i] , 10);
temp = tempA carry;
if (temp > 9) {
res.push(temp - 10)
carry = 1 ;
} else {
res.push(temp);
carry = 0
}
}
return(res.reverse()).join('');
};


이상.
PS: 실제로 이 면접 질문을 수정했습니다. 원래 면접 질문의 심사관이 빅데이터를 저장하려면 문자열을 사용하라고 상기시켜 주었습니다. 이렇게 하면 실제로 난이도가 줄어듭니다~~
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.