javascript - 프론트엔드 인터뷰의 알고리즘 질문
给我你的怀抱
给我你的怀抱 2017-05-19 10:27:19
0
11
1472

오늘 오후에 면접이 있는데, 알고리즘 질문이 있었는데요. 누군가에게 도움을 요청하세요.

주제는 괄호의 덧셈, 뺄셈, 곱셈, 나눗셈을 계산하는 함수를 구현하는 것입니다. 입력 문자열은 (1+2)/4+5+(3+5)*3과 유사합니다. 일반적인 아이디어에 대해 조금 설명해 주시겠어요? 면접관은 이것이 알고리즘 질문이라고 진지하게 말했습니다. eval()을 구현해서는 안 될 것 같아요.

给我你的怀抱
给我你的怀抱

모든 응답(11)
左手右手慢动作

스케줄링 필드 알고리즘을 사용하여 중위 표현을 접미사 표현(역폴란드 표현)으로 변경

으아악
淡淡烟草味

eval은 방법이지만 상대적으로 표준화되지 않았으므로 대부분의 경우 사용해서는 안 됩니다.

정규덧셈을 위한 이진 트리 연산의 네 가지 정규식

仅有的幸福

스택을 사용하여 표현식 평가를 구현하는 방법이 있습니다.

小葫芦

역 폴란드 스타일의 데이터 구조를 사용할 수 있습니다

漂亮男人

가장 일반적인 방법은 구문 분석, 표현식 트리 구축 및 해결입니다.
직접 작성할 수도 있고 Antlr이라는 매우 전문적이고 다재다능한 라이브러리를 사용할 수도 있습니다.
물론 면접때 문법을 분석하고 문법트리를 직접 작성해보라고 하셔야죠. 실제로 할땐 Antlr이 더 낫습니다.

世界只因有你

자바스크립트에서 4가지 연산식을 파싱하는 알고리즘과 예,
한번 봐주세요

JavaScript에서 네 가지 산술 표현식을 구문 분석하는 알고리즘 및 예

巴扎黑

나는 버려진 평가 방법을 사용하는 것을 권장하지 않습니다. 1. 정규식 사용을 권장합니다 2. 데이터 구조에서 스택을 사용하는 방법
책 추천: JavaScript 데이터 구조 및 알고리즘 배우기
최근에 우연히 스택, 큐, 이진 트리를 공부하고 있었습니다

漂亮男人

이것은...문자열을 입력하는 경우입니다.
eval()을 직접 사용할 수 있습니다

var a = '(1+2)/4+5+(3+5)*3';
eval(a);

巴扎黑

문자열의 네 가지 산술 연산을 구문 분석하는 데 일반적으로 사용되는 방법은 역폴란드 방법입니다

大家讲道理

스택을 사용하여 구현합니다. 2년 전에 데이터 구조 실험을 하다가 잠시 쉬었는데, 어디에 넣을지 찾아보겠습니다. 🎜#좋아, 찾아보자 아니, 일반적인 느낌은 2차원 배열을 만들어 연산자 우선순위를 결정한 다음 스택을 사용하여 계산하는 것입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿