#!perl -p s/\s//g/s/(? |
#!perl -p s/\s//g;s/(? |
#!perl -p y/ //d;s/(? |
#!perl -p y/ //d;s/(? |
#!perl -p y/ //d;s/(? |
#!perl -p y/ //d;s/(? |
#!perl -p
sub
p{push@o,$+}y/ //d;{s/(\(+)?(-?\d+)//;p$_.=$1;while(s/^\)//||/^
/){p
while
s/([^(
])$//;chop}if(s/.//){$_.=$&;p
while!/[+-][*\/]$/&&s/([^(
])(?=.$)//;redo}}$_="@o
"
|
#!perl -p
sub
p{push@o,$+}y!-+/* !bBaA!d;{s/(\(+)?(b?\d+)//;p$_.=$1;while(s/^\)//||/^
/){p
while
s/(\w)$//;chop}if(s/.//){$x=$&;p
while
s/(a|$x)$//i;$_.=$x;redo}}$_="@o
";y!bBaA!-+/*!
|
Way too slow. Test 45 (v7) has now taken 12 minutes of CPU time on the specified machine, and the really long tests are still to come.
#!perl -pl s#\s##g; s#(.*?)(^|[-+*/(])(-?\d+)#$1$2\n$3\n#g; 1while s#\((\n.+\n)\)#$1#|| s#^([^)]*?)(.+)\n([*/])\n(.+)#$1$2 $4 $3#|| s#(.+)\n([-+])\n(.+)(?=\n|$)(?!\n[*/])#$1 $3 $2#; s#\n##g |
Fails the first test: Input: 1 - - 2 Output: 1 - 2 -
#!perl -p
y/ //d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$&while
s#[^(
](?=[-+]$)##||s#[*/](?=[*/]$)##;redo}}$_="@o
"
|
#!perl -p
y/ //d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$&while
s#[-+*/](?=[-+]$)##||s#[*/](?=[*/]$)##;redo}}$_="@o
"
|
#!perl -p
y/ //d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#;redo}}$_="@o
"
|
#!perl -p
y/ //d;my@o;while(s/^(\(+)?(-?\d+)//){$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}s/^.//||last;$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}$_="@o
"
|
#!perl -p
y/ //d;my@o;while(s/^(\(+)?(-?\d+)//){$_.=$1;push@o,$2;while(s/^\)//){push@o,$&while
s#[^(
]$##;chop}s/^.?//||last;$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}push@o,$&while
s/.$//;$_="@o
"
|
#!perl -p
y/ //d;my@o;while($.&&s/^-?\d+//||s/^.//){if($.=!($&=~y/0-9)//)){$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}elsif($&eq')'){push@o,$&while
s#[^(
]$##;chop}else{push@o,$&}}push@o,$&while s/.$//;$_="@o
"
|
#!perl -lp
s/\s//g;
$o=0;
@s=@o=();
while (/\S/) {
$o ? s/.// : s#-?\d+|\(##;
$n = $&;
if ($n eq '(') {
push @s, $n;
$o = 0;
} elsif ($n eq ')') {
while (($a=pop(@s)) ne '(') {
push @o, $a;
}
$o = 1;
} elsif ($n !~ m#\d#) {
while (@s && $s[-1] ne '(' && ($s[-1] =~ m#[*/]# || $n =~ m#[-+]#)) {
push @o, pop @s;
}
push @s, $n;
$o = 0;
} else {
push @o, $n;
$o = 1;
}
}
while (@s) { push @o, pop @s; }
$_ = "@o";
|