Problem Statement
- 'L' if person i said that person (i+1) is a liar,
- 'H' if person i said that person (i+1) is a honest person,
- '?' if you didn't ask person i.
You are given the
Definition
- Class:
- ConundrumReloaded
- Method:
- minimumLiars
- Parameters:
- String
- Returns:
- int
- Method signature:
- int minimumLiars(String answers)
- (be sure your method is public)
Constraints
- answers will contain between 2 and 50 characters, inclusive.
- Each character in answers will be 'L', 'H' or '?'.
Examples
"LLH"
Returns: 1
According to the input: Person 0 says that person 1 is a liar. Person 1 says that person 2 is a liar. Person 2 says that person 0 is a honest person. Clearly, they cannot all be honest, so there is at least one liar. It is possible that person 1 is liar and the other two are honest. Hence, the smallest possible number of liars is one. (Note that it is also possible that person 1 is honest and the other two are liars.)
"?????"
Returns: 0
Nobody told us anything. It is possible that everybody is honest.
"LHLH?"
Returns: 2
If person #1 and person #2 are liars, then the answers would be "LHLHH". This is consistent with the answers we received.
"??LLLLLL??"
Returns: 3
"LLL"
Returns: -1
Each of the 8 possible combinations of (liar / honest person) will lead to a contradiction.
"HHHHHHHHHH"
Returns: 0
"?L?L?L?L?L"
Returns: 5
"?HL"
Returns: 1
A case in which changing "?" to "H" is not a good result.
"?????LLLLL"
Returns: 3
"????LLLLL"
Returns: 3
"?????L????"
Returns: 1
"?HH??"
Returns: 0
"??H?HHH"
Returns: 0
"?H"
Returns: 0
"HH"
Returns: 0
"HH?"
Returns: 0
"HH"
Returns: 0
"??H?H?"
Returns: 0
"?H?"
Returns: 0
"?H"
Returns: 0
"?H?H"
Returns: 0
"H??H??H"
Returns: 0
"?HHH"
Returns: 0
"?H"
Returns: 0
"?H???H"
Returns: 0
"HH?"
Returns: 0
"HH"
Returns: 0
"H?"
Returns: 0
"???H??H"
Returns: 0
"?????"
Returns: 0
"H???H??"
Returns: 0
"?H??L?"
Returns: 1
"LL?????"
Returns: 1
"??HLLH?"
Returns: 1
"L?"
Returns: 1
"?HL"
Returns: 1
"HL?"
Returns: 1
"?L?"
Returns: 1
"HH?H?H?L"
Returns: 1
"HH??L"
Returns: 1
"L?H??"
Returns: 1
"?LLH??"
Returns: 1
"??LH"
Returns: 1
"?HH??L"
Returns: 1
"HL??"
Returns: 1
"?HH?LHH"
Returns: 1
"HH?H?LH"
Returns: 1
"????L"
Returns: 1
"LHL"
Returns: 1
"?HH?L"
Returns: 1
"L?"
Returns: 1
"LL?L??"
Returns: 2
"L?LL?L"
Returns: 2
"L?H??HL?L"
Returns: 2
"L?LH"
Returns: 2
"LLLL???"
Returns: 2
"??HLLL"
Returns: 2
"H?L??LL"
Returns: 2
"HLHH?HHHL"
Returns: 2
"L?LLHL"
Returns: 2
"?L??L?HH?"
Returns: 2
"?LHL"
Returns: 2
"L????L?L"
Returns: 2
"L??LLH"
Returns: 2
"HLLHL?"
Returns: 2
"?HL??L"
Returns: 2
"LLH?LL"
Returns: 2
"???LHLL"
Returns: 2
"??L??HLL?"
Returns: 2
"??LLHH?HLL"
Returns: 2
"?LHLH?"
Returns: 2
"LLL??LL"
Returns: 3
"LHLHHLL"
Returns: 3
"L?L?H?LL?"
Returns: 3
"L?H??HLHL"
Returns: 3
"HHLHL??L?H"
Returns: 3
"?LLLLL"
Returns: 3
"LLL??L?"
Returns: 3
"???HL?LLL?"
Returns: 3
"H?L??HL"
Returns: 3
"???LL?LHLL"
Returns: 3
"HLH??LH"
Returns: 3
"?HLLL??L"
Returns: 3
"?LHHL?HL?"
Returns: 3
"L?H?LLHHLL"
Returns: 3
"H?LHL?HL?"
Returns: 3
"H?LHHLHH"
Returns: 3
"LHHLHL?"
Returns: 3
"HLHLL?"
Returns: 3
"HL?HLL?L"
Returns: 3
"?L??LHL?H?"
Returns: 3
"HLLLL??HLH"
Returns: 4
"??LLHLHLLH"
Returns: 4
"LHLHLH?HH"
Returns: 4
"LHL?HLL?LH"
Returns: 4
"L?LHLHLLL"
Returns: 4
"?LLL???LLL"
Returns: 4
"LHLLL??LHL"
Returns: 4
"LHL?L?LH"
Returns: 4
"??HHLH?LHL"
Returns: 4
"HLLLLLL?L?"
Returns: 4
"?LHHLLHLLL"
Returns: 4
"HHH?H?HHHL"
Returns: 4
"LLLL?LHHLL"
Returns: 4
"?LLL?HLH?"
Returns: 4
"HLLLLLHH?L"
Returns: 4
"LHHHL?LLL?"
Returns: 4
"HL?LLL?HL"
Returns: 4
"?HHLH??LLL"
Returns: 4
"LHL?LHL??"
Returns: 4
"LHHLL??L?H"
Returns: 4
"LHLLL?LHLL"
Returns: 5
"LHLHHLL?HL"
Returns: 5
"?LLHLHLHLH"
Returns: 5
"HHHLHL?HHL"
Returns: 5
"?HLH?L?HLH"
Returns: 5
"H?HLLLLLLL"
Returns: 5
"HH?HLLLLHL"
Returns: 5
"HLLL?HHLHH"
Returns: 5
"LLLHL?LLLH"
Returns: 5
"LLLHHLHLL?"
Returns: 5
"?HLLLHHLHL"
Returns: 5
"L?LLHLHLLL"
Returns: 5
"HL?LHL?HLH"
Returns: 5
"HLLHL?HLLL"
Returns: 5
"HLH?HLHLL?"
Returns: 5
"HLHLLLLL?L"
Returns: 5
"HH?L?L?HHL"
Returns: 5
"HHLHHLL?L?"
Returns: 5
"LHHHLHHL?H"
Returns: 5
"LHHLL?LLHH"
Returns: 5
"LLL"
Returns: -1
"HHLHLHHHLHLHLLLHHLHLHLHHHHLHLLHHLHLHLHHLHLLHH"
Returns: -1
"HHHLLHHHHLHLLLHLLLLHHHHHHLHLHLLLHHHHHHHHHHHLHLH"
Returns: -1
"HHLLLHLHHHLHLLLLHHHLHLLLHHHHHLLLHLLLHHHHLHLLHLHLLH"
Returns: -1
"LHLHLHLLLHLLHLHHLHLHLHHHLHLLLLLLHHLLLLHLHHHHHLHLLH"
Returns: -1
"HLLLHHHHHLHHLHLLHLLLLHLLLHHLLHLLHLLHLLLHHLL"
Returns: -1
"HHHHHH?H?LLH?HH??H?HL??LHL?H??LLHH?L?LL?"
Returns: 7
"HHHH?H?HLH????H?LL???LHLH?H??H?H?HHL?H??"
Returns: 6
"HHHHH?HHL?HL??LL??H?H??HL?L?LHL?HLLH?HHL?"
Returns: 9
"HHHH??HH?LHL?LHHL?L?LHLL???L??LLL?HHLL???H?"
Returns: 11
"HHHHH?L??H?LLHLH??HHL???LLLH?LHHLH?LHL?HL?H?"
Returns: 13
"HHH?LHL?H?HHH?HH?L?HLLLHL??L????LH?HH?L?L?LLH?L??"
Returns: 12
"HHHHL???L?LH?L????LHLH???H??L?HLHH???HL?HHL??H"
Returns: 11
"HHHHH??HLHL?HLL?L??HHHHL??LLHL?LL?H??H?LH"
Returns: 9
"HHHH?H?H?H?L?H??L?LL?LLL???HH?LLL?H?L?L?HLL?H????H"
Returns: 10
"HHHHH?HL?L??L?H?LLLHH?L???H??LHL?L?LHHLL??HH?H?L"
Returns: 12
"HHHH??H?HL??LLLH?LLHLH????HLHHLH?LH?L??L?LH?HLH??"
Returns: 15
"HH???HH???LHL??H?HLL??LL??LH??L?L?L?H?H?"
Returns: 8
"HHHL??HHHL?L??H???LL?L??HLL??L?HL??H?H?HH?LHH?H"
Returns: 9
"HHLL?LH??L?LHH???HL?L?HH?H?H??H?LH??LH??L???"
Returns: 9
"HHHHH?HLHHH??HHHH?LHH???H??HL???L??L?LH?H?HL?H?LH"
Returns: 9
"HHH?L?HLH??L?LLLLL??HH???H????LL????H?LLLHHL?"
Returns: 11
"HHH?LL??L??L?????HH?L??LHL??HHHHHHH?LLL????L?LL"
Returns: 10
"HHHLLHH?LLLH??HL?H??HH?L?LHLLL??HHH???H?LHL?"
Returns: 10
"HHHHLHH?HH?L??LH?L?H??L?L?H?LHH??H?L?L?LHH?"
Returns: 12
"HH?LHHHH??HH?H?HLHH?HHL?HH?H?L?L?L??LL???L?"
Returns: 9
"HHHL?HHHHL?LLLLH????L??L?HL?LHL?HHLL??HH"
Returns: 10
"HH??HH??HHLLL?HH??LH?LLH??HHH?HH?HHH??H?L??"
Returns: 5
"HHH??H?H???H?H??HL?HHHHH?L??HHLHLLLL?HH?HLH?LHL?H?"
Returns: 10
"HHHH?H?HL?LLH?HH?L?LHHLH?L?LH???LH?LHLHHHLLHH??L?"
Returns: 13
"HHHL?L?LLHL?L?HLH?HLH?HL?H??LLL??LLHHL?LHL"
Returns: 16
"HHLLHLL?L?LHH???LL?HH?L?HLL??LHLHL??L???HL??HH?H??"
Returns: 12
"HHH?HL???HHLLHHLH?L?HLHL?LH??H?LLL??HLL?L"
Returns: 12
"HHHL?H?LHHHLH?HHH?LH?H?LHHLHHL?H?LLLHL?L??LH?LH?"
Returns: 15
"HHLLH?LL???L???LLHLHL?L??LHHLH????HL???????L"
Returns: 12
"HHH??L?HL?HLHL?LHHHLL?H??L???L??HH?LLLLH"
Returns: 10
"HH?L?L?HLH?L?HH?HLH?H??L?L?HH????L?LH?LH?LHHHLHHH"
Returns: 16
"HH?L?H?HL?HHLLLL????L?H?HLHL????L??LHH?H???H"
Returns: 9
"HHHHH?HLLHLL???L?HLLHHHHHH?LL??LHHHLL?HL?H"
Returns: 8
"HHHHLLH?L?LLHHL??LHLLLLHH?HH?LHLH?H??LHHH"
Returns: 10
"HHHLLH?LHHHHLL?L?L?LL?L?HHHH?L?L?HL?LHLLLLHH?"
Returns: 13
"HH?LHLHH??LHL??HLHH??HL?HLHLLH??HHLH??HHH"
Returns: 12
"HH??LHLHLL?L?LL?HLHL???L?L????L?L???LLLLH"
Returns: 13
"H??H?L?HLLH?LH????HLHHH?HH??H?HLH??L???H?H?L?L??H"
Returns: 10
"HH??HLL?LHHHHHLL??L?L?L???L?H?HLHH??LH??LLL?HL?LH"
Returns: 14
"HHHHHLHLLLHHH?HL?LHL?L?HLL?HHLHLHLH?L?LL?HH"
Returns: 14
"HH??HH?LHHHHHLLHHL??LL???LHL??LLH?LHH?HLLLHHL???LH"
Returns: 13
"H?LHHL?L?HL?LHLHLL?LL??HL?L???L??L?LHHH?LLH"
Returns: 14
"H??HHLH?HHHHLHH??L?L?H?H?LL?HH??L??LLHH???L"
Returns: 11
"HH?LHLH?LLH?L?LHLLLLLH??LLH??LLHLL?L?L??L"
Returns: 14
"H???H?H?LLLLHLL??L?LLH?LL?L???LLH?L?LHL?H?H?H?LH?"
Returns: 12
"HHLL?H??LHHHHL??HHHL?H?L?LH?H?H??LHL?H?HHLLLH"
Returns: 12
"?HHHLLHHHHH?HHHH???HLL?H?LHLH?H??LHH?HL?"
Returns: 6
"HH?LH?????H???HHLL?HHLH??LLHH?HHLHLLHHLHLHHL"
Returns: 13
"HHHHH?LLHHLLHHLHLLLHHLL?L?H???H?H?HL?L?LL"
Returns: 10
"?LHHHL?HHLL???H??H??L????LLL?LH??LH???HH?"
Returns: 8
"HHL?HLHHHHLH?HHH?LHLLL?LHLL??LHLLL??L?HLH?L???L"
Returns: 18
"HLLLLLLLHH?L?LHLH?LL?LLL??L??L?H??H?H?L?H??H?L"
Returns: 14
"HHLLHHH????L?LL??L?LHHHLLHHLL?HHH??LLL?HLHLHLL"
Returns: 12
"H????LLH??H?HH???HLLL?HHL??HLHH?LLHLH?HH"
Returns: 9
"HL?HL?L?HLH??LHLL?HLHLL?LLLH??L??LL?HHH?HLL?H?L"
Returns: 16
"HHH?L?L?HLHLHHHLLL??L?LHL?L??L?HH?HLHHLLLLHHH"
Returns: 15
"H?LL???LLL?HL?L?HH??LHLLLLH?HHHL??H?LHL??L?H"
Returns: 12
"?HHH?????HLHHH?LH?LLHH??LH?HHH??H?L?LLH???LLH?"
Returns: 8
"H?????L?H?H?L?HHL??L?HH?L??HLHHLL?L?LHHL??LHHHLH?L"
Returns: 15
"L?HH??L?L?HH??HHL???LL???LLL??L?LL??HLH?LLH"
Returns: 12
"L?HHHH?HLLLLHH??HH?HH?L?H??H??HHHHLLL??LLLLHH?HLL"
Returns: 9
"HLL?HHL?L?H?HLLLLLHHH??HL?L?LL?LH??LLLL??L?H?H?"
Returns: 14
"H???LHHH?HH?HLL???H?LHLHH???L?LHHHH??H??LLLH?LHLH"
Returns: 10
"LLH??L???L?H???L???H???HL?LHH???LLHH?HL?H?"
Returns: 8
"LLH?LHLL??LLL?LLHHH??LHH???HLL?L?HHLH???H"
Returns: 11
"LHLLHH????HL?HHLH????H??HL?LLLLLHL?L?H??L"
Returns: 11
"HH?HHHLLL????????L?HHHHLHHLHLHHLH????L?HL?HHH"
Returns: 11
"LHHLLLLLH?????HH??????HLH?LH?L??L?LH??LHLH?"
Returns: 13
"L?HLLL??L?LLHLL??LH?L??LL????H?LLL?LL?HH?L"
Returns: 12
"L??HHHLH?LL?LLHL?LL????LL????LHL?HHHLLLH"
Returns: 12
"?HL??H??L?LHHLHLHL?LL?L?????HH???HHHLHL?H"
Returns: 10
"??H??LLHHH?LHLLHLLLHHLHL?L??HH?L?HHL?HHLH?L"
Returns: 14
"LLHL?HHL?HH?HHL????HLHH?LHH?LL?LL?L?H?HHLLH???"
Returns: 11
"LLHHH?HH?L?H?LLL?HH?LHLL?LLL?L?????LL?HLHLH"
Returns: 12
"HH?HHLLLHH?HHHHHL?LH?HHLHLHL???H?LL?H?LHH"
Returns: 11
"?LH?H??HL?HHHHH??H????HH??HH??LH?L?HHHLLL?HL"
Returns: 7
"?L?L??LLL?LL?HLL??LL????LH???LH?L?L???LHLL?HH"
Returns: 13
"H?HLHH?????HLL?LLL?LLHLLL??LHHHHLH??LHLL?LLHH"
Returns: 14
"LL??H??L?HHLL?H?HLLH?H??????L?HLH??L?HH?L"
Returns: 9
"?LHHLLH?HL??H?LHL??L?H?HHL?HLHLH?L????HHH?L?HH?HHL"
Returns: 12
"?L?H?L???H?H??H?L?HHH?LH?LH??L??LL??LHLLL"
Returns: 10
"LHH??H??LLLHH?HLHHLHHLLLHLL??HL???H?LHH??L?LHL?"
Returns: 15
"?HLL?LH?LLL????L??LLL?L??LL??HHLL??LH?LLL?LH"
Returns: 14
"?LH?HHHL?L?HH????H?LLL?LLH?HLHHH?LH?H??L??HHL??H"
Returns: 11
"H?LLHH?L?HHHLL?LHHLH?H?LHL????LHLHLLH?H??HLLL"
Returns: 14
"?LL?LLHLL???HLHH?LHLL???LH?HH??HH?HL?HLLHLLHH?LH"
Returns: 12
"LHLLL??HLLHL????HHLLH?H?HHLHL?HLLHL????HLH"
Returns: 11
"LL??LH?HH?L????L???L?L?L?H??HHLHH??L?LH?H?L?LL"
Returns: 14
"LHL?HL?LHLHH?L?HHL?HHL??L?LL?HH????LL?HLH??L?H"
Returns: 14
"LL?L??LLLHHL?LHL???HHLHLHHLLL??LL???H?L?H?L?"
Returns: 14
"?L?HLH?LHHLLL??LLHH??H?H?????H??HH??HHLLH??L?LLH"
Returns: 10
"?LH?HHH?HLLL?L?HLLLHHH?LLHHHHH?LH?HHHLLLLL?H?LH"
Returns: 13
"???HL?LLLH?L?HHLLHLHLL?LLHHLHHH?LH?H?HLLHH"
Returns: 14
"?H?LHLLHHLLHHHLHH??LLLHHHL?LHL?LLLH?HLL?L?HHHLHL"
Returns: 17
"?HLHLHLLLL??HLHH?LHLHLH?HLL??HL?H???LL?LHHL?L?"
Returns: 15
"?LLH?LHHH?H??LHL?HH????L??LL?HH?LLLLL?LHHHL??L?L"
Returns: 13
"?HL?HLHHLH???HH?L?L?HH?HLL?L?H??HHH?LH?HHH??LLH"
Returns: 10
"LH?HH?HHLL?L?HHH???LHLLLHLHHLHL?HHLHLH??LHLLH"
Returns: 14
"??LLHLHLHLLHHLHL?LHLLL?L?HLL?LL?H??LLH?LLHH??HH?H?"
Returns: 14
"?L?L?H?L?H?LH?LLHH?LLL?HH?H??HLL?LLLH?L??H?LL"
Returns: 12
"LL?LH?H?HHHHHHHLL?LL?HLHH??L?L?L?LLHHLLL?HHLL?LL??"
Returns: 14
"??HLH?H?L?L??H?HL??H?HLHHH?LL??LLHLL?LHLLH??HLHLLL"
Returns: 15
"?LL??HLL?L?LHLLH??HLLHHH??H??HLLHL?H??LL?LHLH?LL?L"
Returns: 13
"LH???HHL?H?HLHLH?LH??H?LHLL??LHL?LLH???HHH?H??HHL"
Returns: 10
"LHLHLH?HLLH?LHHLHL?LHLLH?L?H?H??HLH?HL??HL?HL?H??"
Returns: 15
"LLL??LLHH?LLLLLHL??H?HHHL?HL??H?LLHLLLHLL?LLLHLHH?"
Returns: 17
"LLLL?HLL??LHLHLLHLHHLHHL??L?HHLL?LHHH?H?HLL?HL?H?"
Returns: 15
"?H??HLHLLHL?LHHHL?H??HH??L?HLH?LLHLLLL?LH?L?HLL?HL"
Returns: 16
"L?L?LLHLLHHHL?L?LH?LHLLL?H?HHLLHHH?LHLLHL?LHLHH???"
Returns: 16
"LL?LLHLLL?HLL?LHH??LHL?LLH?HL??HLL?HHLLLH?LLL?HL"
Returns: 17
"L??L?LLH?LLL?HLH?L??L?HLHH?HH?LHLLHHHHLHL?L?L?HH"
Returns: 17
"??L??HLH?HHLHH?H?HLLHLHHHH?L?H??LLLLL?HLLL?HHL?L"
Returns: 18
"?L?H?L?HLH?L??LL?HLH?HHH?L?L?LLLHLL??H?LL?LHHHLLH"
Returns: 16
"?HLH?L?HH?HHH??H?L?LLLHLHL?HL?HHL?HHHLLHL?L?L?H"
Returns: 14
"LLLLL??H?H?HLLLLHHLHLLLL?HLH?HLLLLLHHHL?H?LHLL"
Returns: 18
"?HL?LH?HHHHL?LHL?HLLHH??LLL?HLLLL?HLHHLLH?LLL?HLH"
Returns: 17
"LH?H?HHLHL?HLLHLHHLHLLL?HHLHLLLH?LL?H?HHH?H?LHL?L"
Returns: 15
"LLLHLH?L??L?LHL?L?HHLHLLL?HLH?L?H?LL?HHH?LH?LLLH?H"
Returns: 18
"?HLL?H?HHHLHL??LLH?LLL?LLLLLLH?LHH?HLHH??L?HLHLHLL"
Returns: 16
"LL?LLLLL?LLHLLLHLHLL?HHLHHHLHH??L??LLH?H?LHH???H?L"
Returns: 17
"LL?LLHLH?L?L??LHL?L?H?LHL??HHHLLLHLHLL?HHHHHLHLL?H"
Returns: 18
"?HLHLHL?HHLLL?HLLLH?LLL?H?HHLHH?L?HLHLH??HLH?LHLLH"
Returns: 20
"LHLHLLLLHLHLL?LLHHHHH?H?HLLHH?L?HHH?L?LHHLHL?HH?H?"
Returns: 14
"?L?H?HLH?H?LLHHH?LHHH?HLHLLLL?LLHL?H?HLLLLHLHL?LLL"
Returns: 17
"?LLHLLLHLHL?H??LLLLHLL?H?HHL?HLLHLLHHL?HHH?HHLHLHH"
Returns: 14
"HL??HLLLLL??L?H??LHL?HL?????LHHL??H?LHHHHL?LHH?LHH"
Returns: 14
"LHHHHHHHHHHHHHHHHHHH?H"
Returns: 2
"HH?L??H?H???LLLLL?H??HLH?HL??LLHLL?L?LL???LLHH??HH"
Returns: 12
"LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH?H"
Returns: 2
"LLLLLLHHHHHHHHHLHLHHLLLLLLLHHLL"
Returns: -1
"L?LLH??LHHLHH??HHHLL??LLH??LHHH??HLHHLH??HL"
Returns: 11
"?????????????????????????????????????????????????L"
Returns: 1
"??LHLL???LHL?LLHH??????LH??H??????L???LL???LH?HH?"
Returns: 9
"LHLH??????????????????????????????????????????"
Returns: 2
"LLLLLL???????LLLLHHHHHHLL??HHHHLLLL"
Returns: 8
"???????????????????????????????????????????????"
Returns: 0
"HLH?LH?LLLLL??LHH?????HHH????H???????"
Returns: 7
"??LLLHHLHL??HLLHHLHLHHHLL??HLHLLHLLH??HHLLH?LHL??"
Returns: 15
"??????HLH?LH?LLLLL??LHH?????HHH????H???????"
Returns: 7
"LL??LLL??"
Returns: 3
"LLHH"
Returns: 1
"?LLHL?L??HH?LL?LHL?HH?LH?"
Returns: 7
"LLLL"
Returns: 2
"HHLL"
Returns: 1
"??????????????????????????????????????????????????"
Returns: 0
"??HHLL?LLHHL"
Returns: 3
"LLL?LLL?LLL"
Returns: 5
"LL"
Returns: 1
"H?LLLLLL??HHH?LH?HHHHH?LHLHHL"
Returns: 8
"????????????HLH?LH?LLLLL??LHH?????HHH????H???????"
Returns: 7
"HLH??LH???HLH??LH???HLH??LH???HLH??LH???HLH??LH???"
Returns: 15
"L?L?"
Returns: 2
"H?L"
Returns: 1
"??LHLHLH??H?HHHLLLLHLLLLHHLHLLHLHLL?HLLLHHH??LHLH?"
Returns: 17
"LHL?LLH?HH???L"
Returns: 3
"HHHL"
Returns: -1
"?LHH?"
Returns: 1
"???L"
Returns: 1
"HLLL??HLLHLLHH??LH?HHL??HLHHL?LHLHHLL???"
Returns: 12