Algorithm CODEVAL序列变换算法

Algorithm CODEVAL序列变换算法,algorithm,Algorithm,挑战描述: 有两个序列。第一个序列由数字“0”和“1”组成,第二个序列由字母“A”和“B”组成。挑战在于确定是否可以使用以下规则将给定的二进制序列转换为字符串序列: 1.“0”可以转换为字母“A”(“A”、“AA”、“AAA”等)的非空序列 2.“1”可以转换为字母“A”(“A”、“AA”、“AAA”等)的非空序列或字母“B”(“B”、“BB”、“BBB”等)的非空序列,例如 和一些输入: 1010 AAAAA BBBBAAAA-有效 00 AAAAA-有效期 01001110 AAAAAAB

挑战描述:

有两个序列。第一个序列由数字“0”和“1”组成,第二个序列由字母“A”和“B”组成。挑战在于确定是否可以使用以下规则将给定的二进制序列转换为字符串序列:
1.“0”可以转换为字母“A”(“A”、“AA”、“AAA”等)的非空序列
2.“1”可以转换为字母“A”(“A”、“AA”、“AAA”等)的非空序列或字母“B”(“B”、“BB”、“BBB”等)的非空序列,例如

和一些输入:

1010 AAAAA BBBBAAAA-有效
00 AAAAA-有效期
01001110 AAAAAABBBBAAAAAAAA-有效
1100110 BBAABABBA-无效

我想知道算法应该是什么样子


p.S.没有任何线索

您可以尝试递归解决方案或动态规划。请注意,每个转换

  • 将1或0的数量减少1
  • 无法使字符串变短
  • 这意味着,在每个递归转换中,As或B的数量可以以这样的方式进行限制,即结果字符串的长度不超过输入中的a-B字符串


    更确切地说,这个问题也许可以通过解决。

    经过几天的尝试,我终于解决了这个问题。 我不会给你答案,但这里是方法

    以这个测试用例为例:

    1010 AAAAABBBBAAAA
    
    请注意,1010可以被正则表达式替换

    (A+|B+)A+(A+|B+)A+
    
    此正则表达式可以生成无限多个字符串,对字符串执行此分析的最坏情况时间复杂度为指数


    但是字符串“aaaabbaaaa”只能由(a+)s和(a+| B+)s组成的有限数量的正则表达式来描述,或者在本例中是0s和1s

    Hi,欢迎使用StackOverflow。请详细说明您的问题,以显示您已经尝试了什么。目前,该问题并未解决与编程相关的具体问题。如果这是家庭作业,而你完全不知道从哪里开始,也许可以问问你的导师。嗨,谢谢。我想说的是,这不是家庭作业,只是大脑热身。我尝试了一些递归解决方案,但主要问题是1不仅可以转换为“B”,还可以转换为“A”。请提供到目前为止您所做的部分实现,它使评论和回答更容易。