我被给了一个字符串T,其中只包含's','t','u','v'作为字符。我想找到长度为| T |的字符串数它在最远的n位置与T不同。每个这样的字符串在三个不同的位置上必须不具有相同的字符,这三个不同的位置相隔相同的距离。我的方法是使用动态编程方法,使得dp [i] [j] [k]表示长度为i的这种字符串的数量,在j位置处不同,而在第k个字符处结束,其中k = s,t,u,v。 / p>
if(k与T的第i个字符相同)
DP [i] [j] [K] = DP [I-1] [j] [0] + DP [I-1] [j]的[1] + DP [I-1] [j]的[ 2] - (由于在第i个位置添加k并且违反相同分离距离的条件而导致的额外字符串)
但我知道这是错的?
例如,假设T ='sstt',我们必须找到最多2个位置不同的字符串,然后在相同距离的三个不同位置没有相同字符的字符串是'tstt','ssts'和等
答案 0 :(得分:0)
这似乎真的很有趣。也许你可以枚举两对的数量,然后继续进行?