Useful facts that you should verify:
Any unbounded sequence has a subsequence diverging to $\infty$ or to $-\infty$.
Any bounded sequence has a convergent subsequence.
You correctly point out that the hypothesis that $\limsup_{n \to \infty} s_n$ and $\liminf_{n \to \infty} s_n$ are both finite implies that $(s_n)_{n=1}^{\infty}$ has no subsequences that diverge to infinity. But (1) implies that more is true: the sequence $(s_n)_{n=1}^{\infty}$ must be bounded.
Fix any $\epsilon > 0$.
There cannot be infinitely many $n$ for which $s_n \geq s + \epsilon$, because you could select out of them a subsequence $y_k = s_{n_k}$ satisfying $y_k \geq s + \epsilon$ for all $k$.
- Since the sequence $(s_n)_{n=1}^{\infty}$ is bounded, so is the sequence $(y_k)_{k=1}^{\infty}$. So by (2) it has a subsequence convergent to some limit $L$; and by basic facts about limits, since $y_k \geq s + \epsilon$ for all $k$, one must have $L \geq s + \epsilon$.
- But $L$ is clearly also a subsequential limit of $s$, allowing us to deduce that $\limsup_{n \to \infty} s_n \geq s + \epsilon$, a contradiction.
Similarly, there cannot be infinitely many $n$ for which $s_n \leq s - \epsilon$.
So there is a positive integer $N$ with the property that whenever $n \geq N$ one has
$$
s - \epsilon < s_n < s + \epsilon,
$$
and since $\epsilon > 0$ was arbitrary, $(s_n)_{n=1}^{\infty}$ converges to $s$.
I'll not look at the provided solution, so maybe you'll get a different insight.
It's quite easy if you know about limes superior and limes inferior.
Since the given sequence is bounded, both limits (inferior and superior) are finite. There is a subsequence converging to the limes inferior and one converging to the limes superior. By assumption, these converge to the same number, therefore
$$
\liminf_{n\to\infty}a_n=\limsup_{n\to\infty}a_n
$$
and so the sequence converges.
Without the above concept, you can do as follows. First there is a converging subsequence, since the given sequence is bounded (Bolzano-Weierstraß). So we can assume, by contradiction, that the sequence doesn't converge to $a$ (the limit of all convergent subsequences).
This can mean it doesn't converge at all or that it converges to somewhere else than $a$, but it's not relevant. The important thing is that
there exists $\varepsilon>0$ such that, for all $N$, there is $n>N$ with $|a_n-a|\ge\varepsilon$.
Now choose $n_0>0$ such that $|a_{n_0}-a|\ge\varepsilon$. Next choose $n_1>n_0$ such that $|a_{n_1}-a|\ge\varepsilon$ and go on.
More precisely, if you have already chosen $n_k$ such that $n_0<n_1<\dots<n_k$ and $|a_{n_k}-a|\ge\varepsilon$, choose $n_{k+1}$ such that $|a_{n_{k+1}}-a|\ge\varepsilon$.
Thus we have a built a subsequence, but it's not necessarily convergent. However, since it is itself a bounded sequence, it has a convergent subsequence. This further subsequence cannot converge to $a$, because each of its terms $a_{n_{k_l}}$ satisfies $|a_{n_{k_l}}-a|\ge\varepsilon$. Contradiction.
Best Answer
You have to be very precise with your definitions. Generally, we call a sequence divergent if it does not converge. This means that convergent and divergent are each other's opposite.
As far as I know, there is no accepted definition for oscillating sequence.
The sequence $(-1)^n$ diverges, because it does not converge, while the sequence $\frac{(-1)^n}{n}$ converges to zero. Depending on the precise definition, you may or may not call the latter sequence oscillating, so you have to consult your textbook there.