逆波兰表达式计算,该如何解决
逆波兰表达式计算
最近在整理资料时发现了一些以前收藏的有趣代码
计划逐步将他们移植到 PHP 供有兴趣的人参考
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/** * 逆波兰表达式计算 * 中缀转后缀 **/function postfix($infix) { $priority = array( //算符优先级 '+' => 1, '-' => 1, '*' => 2, '/' => 2, '(' => 0, ')' => 0, '.' => 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0 ); $stack = array(); //符号栈 $data = array(); //数值栈 $i = $top = 0; $last = -1; $len = strlen($infix); while($i= $priority[$infix{$i}]) { postfix_callback(array_shift($stack), $data); } array_unshift($stack, $infix{$i}); break; case ')': if($t != '') array_unshift($data, $t); $t = ''; while($stack[0] != '(') { postfix_callback(array_shift($stack), $data); } array_shift($stack); break; default: if($i > $last+1 && $t != '') { array_unshift($data, $t); $t = ''; } $t .= $infix{$i}; $last = $i; break; } $i++; } while($stack) { postfix_callback(array_shift($stack), $data); } return $data[0];}/** * postfix 的工作函数 * 用于计算表达式的值 **/function postfix_callback($ch, &$data) { $b = array_shift($data); switch($ch) { case '+': $data[0] += $b; break; case '-': $data[0] -= $b; break; case '*': $data[0] *= $b; break; case '/': $data[0] /= $b; break; }}
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->echo postfix( '(2+3)*(3+4)' ); //out 35
------解决方案--------------------
先回贴在看
------解决方案--------------------
这个好东西。
------解决方案--------------------
前排占座, 板主老大给力.
------解决方案--------------------
前排占座, 板主老大给力.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











OPStack은 Optimism Network의 개발 그룹인 Optimism Collective에서 출시한 오픈 소스 블록체인 프레임워크입니다. 이는 Ethereum과 Optimism 커뮤니티 모두에게 중요한 도구입니다. OPStack의 주요 목표는 Optimism Mainnet과 다가오는 Optimism Superchain 및 거버넌스 모델에 주요 소프트웨어 도구를 제공하여 Optimism Network를 강화하는 것입니다. 개발자 중심의 환경을 제공함으로써 OPStack의 핵심 아이디어는 Ethereum 공간에서 성장과 혁신을 촉진하는 것입니다. 이는 최첨단 개발을 위한 길을 열어주고 블록체인 생성을 더욱 단순하게 만듭니다. OPStac

제목: Array.Sort 함수를 사용하여 C#에서 배열을 정렬하는 예 텍스트: C#에서는 배열이 일반적으로 사용되는 데이터 구조이므로 배열 정렬 작업이 필요한 경우가 많습니다. C#에서는 배열을 편리하게 정렬할 수 있는 Sort 메서드가 있는 Array 클래스를 제공합니다. 이 문서에서는 C#에서 Array.Sort 함수를 사용하여 배열을 정렬하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 먼저 Array.Sort 함수의 기본 사용법을 이해해야 합니다. 배열.그래서

Java는 Stack 클래스의 empty() 함수를 사용하여 스택이 비어 있는지 확인합니다. 스택(Stack)은 FILO(선입 후출) 원칙을 따르는 일반적인 데이터 구조입니다. Java에서는 Stack 클래스를 사용하여 스택 기능을 구현할 수 있습니다. Stack 클래스는 스택을 작동하는 일련의 메서드를 제공합니다. 일반적으로 사용되는 메서드 중 하나는 스택이 비어 있는지 확인하는 데 사용되는empty() 함수입니다. Java에서는 Stack 클래스가 java.util 패키지에 있습니다. 이 클래스를 사용하려면 다음이 필요합니다.

HMD 스카이라인(아마존에서 499달러에 구매 가능)이 지난달 출시 당시 네온 핑크와 트위스티드 블랙 두 가지 색상으로 출시됐다. 그들은 이제 블루 토파즈(Blue Topaz)라고 불리는 세 번째 색상과 합류했습니다. HMD 글로벌도 ph에 대한 공식 사례를 발표했다.

PHP에는 배열 작업을 더욱 편리하고 빠르게 만들어주는 강력한 배열 함수가 많이 있습니다. 두 배열을 연관 배열로 결합해야 하는 경우 PHP의 array_combine 함수를 사용하여 이 작업을 수행할 수 있습니다. 이 함수는 실제로 한 배열의 키를 다른 배열의 값으로 새로운 연관 배열로 결합하는 데 사용됩니다. 다음으로 PHP에서 array_combine 함수를 사용하여 두 배열을 연관 배열로 결합하는 방법을 설명하겠습니다. array_comb에 대해 알아보기

PHP로 프로그래밍할 때 배열을 병합해야 하는 경우가 종종 있습니다. PHP는 배열 병합을 완료하기 위해 array_merge() 함수를 제공하지만, 배열에 동일한 키가 존재할 경우 이 함수는 원래 값을 덮어씁니다. 이 문제를 해결하기 위해 PHP는 배열을 병합하고 동일한 키의 값을 유지할 수 있는 array_merge_recursive() 함수도 언어에 제공하여 프로그램 설계를 더욱 유연하게 만듭니다. array_merge

Switchcase에서는 변수를 결정하기 위해 특정 코드 예제가 필요합니다. 프로그래밍에서는 다양한 변수 값을 기반으로 다양한 작업을 수행해야 하는 경우가 많습니다. switchcase 문은 변수 값에 따라 실행할 다양한 코드 블록을 선택할 수 있는 편리한 구조입니다. 다음은 변수의 다양한 값을 결정하기 위해 switchcase 문을 사용하는 방법을 보여주는 특정 코드 예입니다. #includeintmain(){

데이터 폴더에는 소프트웨어 설정 및 설치 패키지와 같은 시스템 및 프로그램 데이터가 포함되어 있습니다. 데이터 폴더의 각 폴더는 데이터 파일이 파일 이름인 Data 또는 명명된 데이터를 참조하는지 여부에 관계없이 다양한 유형의 데이터 저장 폴더를 나타냅니다. , 모두 시스템이나 프로그램에 의해 사용자 정의된 데이터 파일입니다. 데이터는 데이터 저장을 위한 백업 파일입니다. 일반적으로 meidaplayer, 메모장 또는 워드로 열 수 있습니다.
