| 12345678910111213141516171819202122232425262728293031323334 | package mainfunc numDecodings(s string) int {	// just like the stair jumping problem,	// solution cnt = last cnt + last last cnt (under some condition)	strLen := len(s)	if strLen == 0 || s[0] == '0' {		return 0	} else if strLen == 1 {		return 1	}	solutionCnt := make([]int, strLen)	solutionCnt[0] = 1	if s[0] == '1' || (s[0] == '2' && s[1] <= '6') {		solutionCnt[1] = 1	}	if s[1] != '0' {		solutionCnt[1] += solutionCnt[0]	}	for i := 2; i < strLen; i++ {		if s[i-1] == '1' || (s[i-1] == '2' && s[i] <= '6') {			solutionCnt[i] += solutionCnt[i-2]		}		if s[i] != '0' {			solutionCnt[i] += solutionCnt[i-1]		}	}	return solutionCnt[strLen-1]}// func main() {// 	str := "12345120"// 	fmt.Println(numDecodings(str))// }
 |