G 小红过61 想到dp,先不考虑题目所给条件,遍历输入的字符串s,i表示遍历到的位置,dp[i]表示遍历到当前位置时合法子串的数目,发现遍历到s[i]时,新的子串有两种选择,1、直接在dp[i - 1]表示的每一个子串后面加上s[i],2、s[i]成为一个独立的子串,即dp[i] = dp[i - 1] * 2 + 1。 显然,遍历到s[i] = '6'时,s[i]不可能出现在任何一个连续的"61"中,所以考虑遍历到s[i] = 1的情况。 当s[i] = '1'时,符合题意的子串数目应该等于当s[i] != '1'时合法子串的数目再减去遍历到s[i]时所有以6结尾的子串数目,用dp6[i ...