Skip to main content
Commonmark migration
Source Link

###Ruby, 641 651 543 characters###

Ruby, 641 651 543 characters

###Ruby, 641 651 543 characters###

Ruby, 641 651 543 characters

replaced http://codegolf.stackexchange.com/ with https://codegolf.stackexchange.com/
Source Link

Edit: Added a transition to fix the bug PleaseStandPleaseStand noted in the comments. Also changed initialisation of state.

Edit: Added a transition to fix the bug PleaseStand noted in the comments. Also changed initialisation of state.

Edit: Added a transition to fix the bug PleaseStand noted in the comments. Also changed initialisation of state.

deleted 97 characters in body
Source Link
Howard
  • 23.6k
  • 2
  • 45
  • 83

###Ruby, 641 651651 543 characters###

H=Hash.new{|h,k|[k]}
D=[[0d=[[i=0,0,[]]]
O=['o=[?(']]
L=->{e2=D.pop;e1=DL="t,u,v=d.pop
Opop;q,r,s=d.pop=='pop;o.'&&pop<?|&&(H[e1[1]]|=[e2[0]]H[r]<<=t)||(H[e1[0]]|=[e2[0]];H[e1[1]]|=[e2[1]]H[q]<<=t;H[r]<<=u)
D.push [e1[0];d<<[q,e2[1]u,[(e1[2]+e2[2])*"||"]]}s+v]"
i=0;getsgets.chop.chars.map{|c|c=='*'&&|c|c==?*&&(e=D.pop;H[e[1]]|=[e[0]];H[e[1]]|=[i+=1];Dq,r,s=d.push [e[1]pop;H[r]|=[q,i+=1];d<<=[r,i,e[2]];nexts];next)
L[]whileeval(L)while/[|)]/=~c ?O[o[-1]!='1]>?(':O[o[-1]=='1]==?.'
/[|(]/=~c&&(O.push c;D.push [i+=1=~c&&d<<[i+=1,i,[]])||c==')'&&(O.pop;O.push'.'o<<c&&[]]||c!=?)||(D.push [i+=1&&d<<[i+=1,i+1,["s==#{io<<?.;i}&&c=='#{c}'&&#{i+=1}"]];O.push'"]]||o[-1]=?.')}
L[]whileeval(L)while Oo.size>1
H.map{H.map{|k,v|v.map{|v|H[k]|=H[v]}}}
d=D[0]t,u,v=d[0]
$><<"s=#{H[d[0]]H[t]};gets.chop.chars.map{|c|s=s.map{|s|#{d[2][0]v*'||'}}-[!0];#{H.map{|k,v|"s&[#{k}]!=[]&&s|=#{v}"}*";"*?;}};p s&[#{d[1]u}]!=[]"

###Ruby, 641 651 characters###

H=Hash.new{|h,k|[k]}
D=[[0,0,[]]]
O=['(']
L=->{e2=D.pop;e1=D.pop
O.pop=='.'&&(H[e1[1]]|=[e2[0]])||(H[e1[0]]|=[e2[0]];H[e1[1]]|=[e2[1]])
D.push [e1[0],e2[1],[(e1[2]+e2[2])*"||"]]}
i=0;gets.chop.chars.map{|c|c=='*'&&(e=D.pop;H[e[1]]|=[e[0]];H[e[1]]|=[i+=1];D.push [e[1],i,e[2]];next)
L[]while/[|)]/=~c ?O[-1]!='(':O[-1]=='.'
/[|(]/=~c&&(O.push c;D.push [i+=1,i,[]])||c==')'&&(O.pop;O.push'.')||(D.push [i+=1,i+1,["s==#{i}&&c=='#{c}'&&#{i+=1}"]];O.push'.')}
L[]while O.size>1
H.map{H.map{|k,v|v.map{|v|H[k]|=H[v]}}}
d=D[0]
$><<"s=#{H[d[0]]};gets.chop.chars.map{|c|s=s.map{|s|#{d[2][0]}}-[!0];#{H.map{|k,v|"s&[#{k}]!=[]&&s|=#{v}"}*";"}};p s&[#{d[1]}]!=[]"

###Ruby, 641 651 543 characters###

H=Hash.new{|h,k|[k]}
d=[[i=0,0,[]]]
o=[?(]
L="t,u,v=d.pop;q,r,s=d.pop;o.pop<?|&&(H[r]<<=t)||(H[q]<<=t;H[r]<<=u);d<<[q,u,s+v]"
gets.chop.chars.map{|c|c==?*&&(q,r,s=d.pop;H[r]|=[q,i+=1];d<<=[r,i,s];next)
eval(L)while/[|)]/=~c ?o[-1]>?(:o[-1]==?.
/[|(]/=~c&&d<<[i+=1,i,o<<c&&[]]||c!=?)&&d<<[i+=1,i+1,["s==#{o<<?.;i}&&c=='#{c}'&&#{i+=1}"]]||o[-1]=?.}
eval(L)while o.size>1
H.map{H.map{|k,v|v.map{|v|H[k]|=H[v]}}}
t,u,v=d[0]
$><<"s=#{H[t]};gets.chop.chars.map{|c|s=s.map{|s|#{v*'||'}}-[!0];#{H.map{|k,v|"s&[#{k}]!=[]&&s|=#{v}"}*?;}};p s&[#{u}]!=[]"
added 47 characters in body
Source Link
Howard
  • 23.6k
  • 2
  • 45
  • 83
Loading
Source Link
Howard
  • 23.6k
  • 2
  • 45
  • 83
Loading