The key to (b) is (a). If S is diagonalizable, then there exist a basis for the vector space in which S is diagonal. But apply S to each of those basis vectors multiplies each of the basis vectors by the corresponding diagonal value: A matriix is diagonalizable if and only if there exist a basis consisting entirely of eigenvectors of that matrix. Each eigenspace of S is the space spanned by a single basis vector. Now use (a): T maps each eigenspace of S onto itself: that is it maps each basis vector to multiple of itself.