| 123456789101112131415161718192021 | 
							- func magicalString(n int) int {
 
- 	if n <= 1 {
 
- 		return n
 
- 	}
 
- 	l, pre, cnt := 3, 2, 1
 
- 	queue := []int{2}
 
- 	for l < n {
 
- 		inc := queue[0]
 
- 		queue = queue[1:]
 
- 		pre = 3 - pre
 
- 		for i := 0; i < inc && l < n; i++ {
 
- 			queue = append(queue, pre)
 
- 			l++
 
- 			if pre == 1 {
 
- 				cnt++
 
- 			}
 
- 		}
 
- 	}
 
- 	return cnt
 
- }
 
 
  |