| 1234567891011121314151617181920212223242526272829 | 
							- func checkValidString(s string) bool {
 
- 	set := make(map[int]bool) // Records ALL POSSIBLE VALID num of lb - rb
 
- 	set[0] = true
 
- 	for _, r := range s {
 
- 		nset := make(map[int]bool)
 
- 		switch r {
 
- 		case '(':
 
- 			for k := range set {
 
- 				nset[k+1] = true
 
- 			}
 
- 		case ')':
 
- 			for k := range set {
 
- 				if 0 < k {
 
- 					nset[k-1] = true
 
- 				}
 
- 			}
 
- 		default:
 
- 			for k := range set {
 
- 				nset[k+1] = true
 
- 				nset[k] = true
 
- 				if 0 < k {
 
- 					nset[k-1] = true
 
- 				}
 
- 			}
 
- 		}
 
- 		set = nset
 
- 	}
 
- 	return set[0] // Check if 0 is possible
 
- }
 
 
  |