Shift the powers to make a polynomial; store the max degree in the data structure (somewhat like RealDigits
)l
u = b/y^3 + c + a y^2;
coeffs =(* {coefficient list, max degree}*)
{CoefficientList[u/y^Exponent[Series[u, y -> 0], y], y],
Exponent[u, y]}
(* {{b, 0, 0, c, 0, a}, 2} *)
Reconstruct the expression:
First[coeffs] . (y^Range[Last[coeffs] - Length@First[coeffs] + 1, Last[coeffs]])
(* c + b/y^3 + a y^2 *)