f = -> n {
pn = -> n {n.to_s.reverse.to_i == n ? [n] : []}
aux = -> m, a, b {0 < m.size ? m : aux.(pn.(a) + pn.(b), a - 1, a + 1)}
aux.(pn.(n), n - 1, n + 1)
}
p [0, 17, 100].map {|n| [n, f.(n)]}
ZiA9IC0+IG4gewogIHBuID0gLT4gbiB7bi50b19zLnJldmVyc2UudG9faSA9PSBuID8gW25dIDogW119CiAgYXV4ID0gLT4gbSwgYSwgYiB7MCA8IG0uc2l6ZSA/IG0gOiBhdXguKHBuLihhKSArIHBuLihiKSwgYSAtIDEsIGEgKyAxKX0KICBhdXguKHBuLihuKSwgbiAtIDEsIG4gKyAxKQp9CnAgWzAsIDE3LCAxMDBdLm1hcCB7fG58IFtuLCBmLihuKV19