Like so many things in Mathematica, I don't know how you would ever stumble onto this on your own.
This will tell you the positions where the sign flip happens.
In[1]:= ReplaceList[{1,1,1,-1,-1}, {pre___, 1,-1,___}|{pre___,-1,1,___} :>Length[{pre}]+1]
Out[1]= {3}
In[2]:= ReplaceList[{1,-1,1,-1,-1}, {pre___,1,-1,___}|{pre___,-1,1,___} :>Length[{pre}]+1]
Out[2]= {1,3,2}
This trick courtesy
http://mathematica.stackexchange.com/questions/941/finding-a-subsequence-in-a-list among other places
And if you wrap a Length[] around those it will tell you how many sign flips.
In[3]:= Length[ReplaceList[{1,-1,1,-1,-1}, {pre___,1,-1,___}|{pre___,-1,1,___} :>Length[{pre}]+1]]
Out[3]= 3
When would you think that the way to find how many of something you have is to begin by destroying your data?
MatchQ doesn't work, Position doesn't work, Count doesn't work, not as far as I've ever been able to find.