#!perl -pl s/\s//g;$x=xx;$a=s#[*/]#x$_#?'(([+-] )?x)':x,s/[-+(]$/x$_ x/,$x=~s/$a/$_ $1/for/(? |
#!perl -pl s/\s//g;$x=xx;s/$/ /,/[*\/]/&&$x=~s/[+-] x|x/x$_$&/||s/\(|([+-] )/x$1x/+$x=~s/x/$_/for/(? |
It seems it fails this test: Input: 1 + 2 * 3 Output: 1 2 + 3 *
#!perl -p s/\s//g;$x=" ";s/$/ /,/[*\/]/&&$x=~s/[+-] | / $_$&/||s/\(|([+-] )/ $1 /+$x=~s/ /$_/for/(? |
#!perl -p s/\s//g;s/(? |
Finally getting forward
#!perl -p s/\s//g;s/(? |
#!perl -p s/\s//g;s/(? |
Final optimizations, better logic needed.
#!perl -pl %w='*b/c+d-e'=~/./g;s/\s//g;s/(? |
Easy optimizations, score <200
#!perl -pl
%w=split//,'*b/c+d-e';sub r{my($a)=@_;
for$b('*/','+-'){1 while$a=~s#(\w+)([$b])(\w+)#a$1a$3a$w{$2}#}$a}
s/\s//g;s/(?
|
First working solution, so I don't bother with optimization yet.
#!perl -p
%w=('+'=>'a','-'=>'s','*'=>'M','/'=>'D');
sub rpn($) {
my($a)=@_;
1 while$a=~s#(\w+)([*/])(\w+)#_$1_$3_$w{$2}#;
1 while$a=~s/(\w+)([+-])(\w+)/_$1_$3_$w{$2}/;
$a
}
s/\s//g;s/(?
|