Guest User

Untitled

a guest
Jan 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. ["E1", "E1C", "E1D", "E10", "E11", "E12", "E2", "E3", "E4", "EC1", "EC1A", "EC1M", "EC1N",
  2. "EC1R", "EC1V", "EC1Y", "EC2", "EC2A", "EC2M", "EC2N", "N1", "N10", "N11", "N12",
  3. "N13", "N2", "NW1", "NW10", "NW2" etc]
  4.  
  5. ["E1", "E1C", "E1D", "E2", "E3", "E4", "E10", "E11", "E12", "EC1", "EC1A", "EC1M", "EC1N",
  6. "EC1R", "EC1V", "EC1Y", "EC2", "EC2A", "EC2M", "EC2N", "N1", "N2", "N10", "N11", "N12",
  7. "N13", "NW1", "NW2, "NW10" etc]
  8.  
  9. array.sort_by do |str|
  10. /A(w)(d+)Z/ === str
  11. [$1, $2.to_i]
  12. end
  13.  
  14. array.sort_by do |str|
  15. /A(D*)(d*)(D*)(d*)Z/.match(str)[1..-1].reject(&:blank?).collect do |item|
  16. /d/ === item ? item.to_i : item
  17. end
  18. end
  19.  
  20. array.sort do |a, b|
  21. a = a.dup
  22. b = b.dup
  23.  
  24. regex = /(d+)/
  25. a.match(regex)
  26. a_num = $1.to_i
  27. b.match(regex)
  28. b_num = $1.to_i
  29.  
  30. if a_num > b_num
  31. a.gsub!(regex, "1")
  32. b.gsub!(regex, "0")
  33. elsif a_num < b_num
  34. a.gsub!(regex, "0")
  35. b.gsub!(regex, "1")
  36. end
  37.  
  38. a <=> b
  39. end
Add Comment
Please, Sign In to add comment