Problem Statement
Cat Taro likes strings.
You are given a
To Taro, the ugliness of a string is the number of pairs of equal consecutive characters. For example, the ugliness of "ABABAABBB" is 3: there is one pair "AA" and two (overlapping) pairs "BB".
Taro now wants to change each question mark in S either to 'A' or to 'B'. His goal is to minimize the ugliness of the resulting string. Return the smallest ugliness that can be achieved.
Definition
- Class:
- TaroFillingAStringDiv2
- Method:
- getNumber
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getNumber(String S)
- (be sure your method is public)
Constraints
- S will contain between 1 and 50 characters, inclusive.
- S will consist only of characters 'A', 'B' and '?'.
Examples
"ABAA"
Returns: 1
There is initially one pair of consecutive digits that are equal in this case. There is no characters that Taro has to replace, hence the answer is 1.
"??"
Returns: 0
"A?A"
Returns: 0
"A??B???AAB?A???A"
Returns: 3
"?BB?BAAB???BAB?B?AAAA?ABBA????A?AAB?BBA?A?"
Returns: 10
"A?AB?B??BAAB?ABBB??AABB?BB?A?AB?AA"
Returns: 11
"?A?ABA?B??BAA?B?B?AA?A?BAAAA??A???BAA?AAABA?"
Returns: 15
"??AB?B?BABBBA?BAB?AA??B??A?B?BA?A?A?B"
Returns: 7
"A??ABA??B?"
Returns: 1
"BAAAAABBA?BA?A?B??BAB?AA?"
Returns: 10
"B???A??B?BA?BA"
Returns: 2
"B?ABAABAB?"
Returns: 2
"AAAA?????BBAABB??B???ABBA?A?AA?B???BAAA?A?AB??AB?"
Returns: 14
"???AB?AAAABBB?BBBAAB??A???"
Returns: 9
"??AA??B?AA?????B????B??A?BBA??"
Returns: 7
"??BBBB"
Returns: 3
"?AA????A?BB?B?"
Returns: 4
"?B??BAA?B???????AA?B??????A?B?A?"
Returns: 8
"???????A?????A?"
Returns: 0
"?A?A?????A????BB??A"
Returns: 1
"AB???B?A?A??AAA?BAB?AAA?A??AB???BB??B?????A?"
Returns: 12
"BA?AAB?????"
Returns: 1
"BA???A????A???B?BAA?A?BABBBB??AA?"
Returns: 8
"?AB??A???A??A???A??????BAA???AAB?AB?A?A"
Returns: 5
"??????B"
Returns: 0
"B???????B???????????"
Returns: 0
"????????B????????BB???BA????A??B???"
Returns: 3
"??????BA?B????B???????A????A?????BA"
Returns: 5
"?A??A???BA???????B????????B??B?A??B????"
Returns: 6
"?B??????????????B??????A???????????????????"
Returns: 1
"?????????????A?"
Returns: 0
"??B??????"
Returns: 0
"B???A?????????"
Returns: 1
"??B???AB??"
Returns: 1
"AABBAAABABBABABBAABBBAABAABBBBBAABAABBAAAAAABBABAA"
Returns: 25
"BBAABAAAAAAABBBABBBBAAAAABBAAAABABABAAABBBAAAAAABB"
Returns: 31
"BABBABBAABAAABBBABABBBBBAABBABAABABAABBBBBBBAABABB"
Returns: 23
"BABAAAABAAAABBBBBAABABAABBABABBAAAABBABBBBBABABAAB"
Returns: 23
"AAABBABABBAAAAABBAAABABABBABABBABBAAAABBBAAAABAAAB"
Returns: 24
"BBB??A?BA???B??AAB?AAB?BBB??BA??BAB?AA?A?AABABABA?"
Returns: 13
"BB?BBA??A?BBB?BAB??A??AB?A?ABAA?BBA?BA??AAB?AAAAA?"
Returns: 19
"?ABBAABAAB?BA???B?BABA??B?BAABAAA?ABBAABABBBBB?ABA"
Returns: 14
"AAAABA?BBAABBAABB?A?ABB?BB?AABB?BAAAAA?BAB?AA?AAA?"
Returns: 24
"A?B???B?BABABB?B?A?B?AA??AABBBBBA?ABAAAAB?AABABB??"
Returns: 18
"??B??BBABABBBAA?BA???AA?B?B??AB???AAABAA?BB?A?A?AA"
Returns: 16
"B????B?BBAA?A?AA??BAA?BABAA???BBB???AA?B?A?B?BBBB?"
Returns: 18
"??A????AB?B?A??BBAA?AABAAB??AA???ABAB??B?ABBBAAABA"
Returns: 13
"BBBAABB?A?BBAA??B?AA?A?A?AAA?B?A?BAA?A??AB??AAAA?B"
Returns: 21
"ABB??BAAA??BBB?ABABBAA?BABA?B?BAA?AB?BABABAAB?B?BA"
Returns: 13
"??A????AB??B??B???B????????BB?B????AA?BBA????BA??B"
Returns: 8
"??B??B???BA???AA?B?A???A??????A??B????BA?B????B??A"
Returns: 8
"??B????????BB???????B?????B?A???B?A????B?B????????"
Returns: 5
"??A?BB?BB??????B??B?B??AAB????????BA????BBB???????"
Returns: 9
"????BA?AA?A????B???A??B????????B???B???AA????BA?A?"
Returns: 5
"A?????A??????????????AAA????????????BA?BAA???AB???"
Returns: 5
"A????A?A??B?????AA??B??B??????????A???B?????A?A?BA"
Returns: 7
"??????????BAB?AB?A???B??BB?B???B??????A????????B??"
Returns: 5
"B??B?A???B??A???A??A??????A??????????A??B??A???A??"
Returns: 6
"???A???????A?????A????A???A???B??AA???B??B???????A"
Returns: 6
"?????????????B????A?A?????????????????????????????"
Returns: 0
"A??????????????B?????A????????B???A?B?BABB????????"
Returns: 4
"????????????B???????????????????????????????AA????"
Returns: 2
"??????????????B????????????????B??????????B???????"
Returns: 2
"?????????B???A??AB????????????????????????????????"
Returns: 2
"??????????????????????????????????????????????B???"
Returns: 0
"????????????A?????????????????????????????????B???"
Returns: 1
"??????????????????????????????????????????????????"
Returns: 0
"??????????????????????????????????????????????????"
Returns: 0
"?????????????B????????????????????????????????????"
Returns: 0
"???A"
Returns: 0
"??B"
Returns: 0
"?????B"
Returns: 0
"??BBABBBAA"
Returns: 4
"??AB"
Returns: 0
"???B"
Returns: 0
"??A"
Returns: 0
"????????????????????????????????????????"
Returns: 0
"A??A??A??A??"
Returns: 3
"??BAA?"
Returns: 1
"???A??A"
Returns: 1
"AB??BB"
Returns: 2
"??????????????????????????????????????????A"
Returns: 0
"??BA"
Returns: 0
"??ABABBBAA"
Returns: 3
"??BAB"
Returns: 0
"??B?"
Returns: 0
"A?B"
Returns: 1