Jelena Ostapenko battles past Ekaterina Alexandrova to win their WTA Linz semi-final and set up a clash with Cori Gauff in the final.