逆波兰表达式计算,该如何解决
逆波兰表达式计算
最近在整理资料时发现了一些以前收藏的有趣代码
计划逐步将他们移植到 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
------解决方案--------------------
先回贴在看
------解决方案--------------------
这个好东西。
------解决方案--------------------
前排占座, 板主老大给力.
------解决方案--------------------
前排占座, 板主老大给力.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

OPStack ialah rangka kerja blockchain sumber terbuka yang dikeluarkan oleh Optimism Collective, kumpulan pembangunan di sebalik Optimism Network. Ia adalah alat penting untuk kedua-dua komuniti Ethereum dan Optimisme. Matlamat utama OPStack adalah untuk mengukuhkan Rangkaian Optimisme, menyediakan alatan perisian utama kepada Optimisme Mainnet, serta Optimisme Superchain yang akan datang dan model tadbir urusnya. Dengan menyediakan persekitaran berorientasikan pembangun, idea teras OPStack adalah untuk menggalakkan pertumbuhan dan inovasi dalam ruang Ethereum. Ia membuka jalan untuk pembangunan termaju dan menjadikan penciptaan blockchain lebih mudah. OPStac

Tajuk: Contoh menggunakan fungsi Array.Sort untuk mengisih tatasusunan dalam Teks C#: Dalam C#, tatasusunan ialah struktur data yang biasa digunakan dan operasi pengisihan tatasusunan selalunya diperlukan. C# menyediakan kelas Array, yang mempunyai kaedah Isih untuk menyusun tatasusunan dengan mudah. Artikel ini akan menunjukkan cara menggunakan fungsi Array.Sort dalam C# untuk mengisih tatasusunan dan memberikan contoh kod khusus. Pertama, kita perlu memahami penggunaan asas fungsi Array.Sort. Susunan.Jadi

Java menggunakan fungsi kosong() kelas Tindanan untuk menentukan sama ada tindanan itu kosong. Tindanan (Timbunan) ialah struktur data biasa yang mengikut prinsip masuk pertama, keluar terakhir (FILO). Di Java, kita boleh menggunakan kelas Stack untuk melaksanakan fungsi tindanan. Kelas Stack menyediakan satu siri kaedah untuk mengendalikan tindanan Salah satu kaedah yang biasa digunakan ialah fungsi empty(), yang digunakan untuk menentukan sama ada tindanan itu kosong. Di Java, kelas Stack terletak dalam pakej java.util Untuk menggunakan kelas ini, anda perlukan

Apabila HMD Skyline(tersedia di Amazon pada harga $499) dilancarkan bulan lepas, ia dikeluarkan dalam dua warna - Neon Pink dan Twisted Black. Mereka kini disertai oleh warna ketiga yang digelar Blue Topaz. HMD Global juga telah mengumumkan kes rasmi untuk ph

Apabila pengaturcaraan dalam PHP, kita selalunya perlu menggabungkan tatasusunan. PHP menyediakan fungsi array_merge() untuk melengkapkan penggabungan tatasusunan, tetapi apabila kunci yang sama wujud dalam tatasusunan, fungsi ini akan menimpa nilai asal. Untuk menyelesaikan masalah ini, PHP juga menyediakan fungsi array_merge_recursive() dalam bahasa, yang boleh menggabungkan tatasusunan dan mengekalkan nilai kunci yang sama, menjadikan reka bentuk program lebih fleksibel. array_merge

Dalam PHP, terdapat banyak fungsi tatasusunan berkuasa yang boleh menjadikan operasi tatasusunan lebih mudah dan lebih pantas. Apabila kita perlu menggabungkan dua tatasusunan ke dalam tatasusunan bersekutu, kita boleh menggunakan fungsi array_combine PHP untuk mencapai operasi ini. Fungsi ini sebenarnya digunakan untuk menggabungkan kekunci satu tatasusunan sebagai nilai tatasusunan lain ke dalam tatasusunan bersekutu baharu. Seterusnya, kami akan menerangkan cara menggunakan fungsi array_combine dalam PHP untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu. Ketahui tentang array_comb

Suis memerlukan contoh kod khusus untuk menentukan pembolehubah Dalam pengaturcaraan, kita selalunya perlu melakukan operasi yang berbeza berdasarkan nilai pembolehubah yang berbeza. Pernyataan suis ialah struktur mudah yang membolehkan anda memilih blok kod yang berbeza untuk pelaksanaan berdasarkan nilai pembolehubah. Berikut ialah contoh kod khusus yang menunjukkan cara menggunakan pernyataan kotak suis untuk menentukan nilai pembolehubah yang berbeza: #includeintmain(){

Folder data mengandungi data sistem dan program, seperti tetapan perisian dan pakej pemasangan Setiap folder dalam folder Data mewakili jenis folder storan data yang berbeza, tidak kira sama ada fail Data merujuk kepada nama fail Data atau sambungan data , semuanya adalah fail data yang disesuaikan oleh sistem atau program Data ialah fail sandaran untuk penyimpanan data Secara umumnya, ia boleh dibuka dengan meidaplayer, notepad atau word.
