A string is called balanced when every letter ocurring in the string, appears both in upper and lowercase. For example, the string "CATattac" is balanced ('a', 'c' and 't' occur in both cases), but "Madam" is not ('d' and 'a' appear only in lowercase). Note that the number of ocurrences does not matter.
Write a function:
class solution { public int solution(string S);}
that, given a string S of length N, returns the length of the shortest balanced fragment of S. If S does not contain any balanced fragments, the function should return -1.