【问题标题】:number of strings which differ at atmost n positions?最多在 n 个位置不同的字符串数?
【发布时间】:2016-07-30 20:16:43
【问题描述】:

我得到了一个字符串 T,它仅由 's','t','u','v' 作为字符组成。我想找到长度为 |T| 的字符串数它与 T 最多在 n 个位置不同。此外,每个这样的字符串在三个不同的位置上不能有相同的字符,这些位置相隔相同的距离。我的方法是使用动态编程方法,这样 dp[i][j][k] 表示长度为 i 的字符串的数量,在 j 位置不同,而在第 k 个字符结束,其中 k=s,t,u,v 。

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' 和等等

【问题讨论】:

  • “三个不同的位置相隔相同的距离”是什么意思?
  • @j_random_hacker 例如 'ttt' 、 'ststst' 无效。在第一个“t”中,彼此之间的距离为 1,而在第二个中,它们在三个不同的位置彼此之间的距离为 2
  • 这对我来说看起来很难——我什至不知道如何计算服从这个约束的字符串总数,更不用说也满足汉明距离约束的数字了!
  • 当然,总是有生成和测试的,但这几乎不是最快的方法。但我还想说的是:这绝对是编程比赛的问题,所以请给我们一个链接,以便我们验证它是否已经完成(这样我们就不会不公平地帮助你)。

标签: string algorithm dynamic-programming combinatorics


【解决方案1】:

这似乎很有趣。也许你可以列举两对的数量,然后继续?

【讨论】:

    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多