codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #define MAX_TREE_HEIGHT 10 #define TREE_BUFSIZE (1<<MAX_TREE_HEIGHT) int main() { char str[] = "(12 + 3) * ( 3 * (4 + 5 ))"; char n[TREE_BUFSIZE]={0}; char *p; int w=1, i; for(p=str; *p; ++p) switch(*p) { case ' ': continue; case '(': w = w*2 + 1; break; case ')': w = (w-1)/2; break; case '+': case '*': case '-': case '/': n[w++/2]=*p; break; default: n[w]=n[w]*10+(*p-'0'); break; } char ans[15] = { '*', '+', '*', 12, 3, 3, '+', 0, 0, 0, 0, 0, 0, 4, 5 }; int correct = 1; for(i=0;i<15;i++) if (ans[i]!=n[i]) { correct=0; break; } printf("%s\n", correct ? "Correct." : "Wrong."); }
Private
[
?
]
Run code