首先,我不确定如何命名这个问题。如果有任何人有更好的想法随时改变它或告诉我这样做。
假设我有两个字符串s1,s2包含'+'和' - ',这意味着正负电荷。
s1是我们的开始输入,s2是我们想要从s1获得的模式。我们唯一的操作是我们可以将费用改为相反的。但是当我们这样做时,不仅选择的费用正在改变,而且还会在我们选择的一个附近收费(左右,除了第一个和最后一个字符,因为其中一个没有左边和右边)。
我相信唯一的一个是当我们的字符串长度为2时,总量'+'(或' - ')是奇数。例如
在: “+ - ”
图案: “++”
否则它是可能的,但证明将被赞赏。作为第2点,我不知道,欢迎任何提示。
答案 0 :(得分:3)
你对问题何时可以解决的直觉是不对的。每当n = 2 (mod 3)
时,所有实例中有一半是不可解的。一种看待这种情况的方法是通过减少适当的方程组(mod 2)的几个步骤。另一种看到有一些冗余的方法是看到翻转第一,第四,第七,......(n-1)st会影响与翻转第二,第五,第八,......第n个完全相同的字符集。
至于解决这些问题的算法:第一次翻转有两种可能的选择。一旦你决定是否翻转第一个字符,第一个字符的值就会告诉你是否需要翻转第二个字符。然后第二个字符的值告诉您是否要翻转第三个字符。等等。所以试试两种可能性。如果两者都不起作用,问题就不可能了;如果一个人工作,报告它;如果两者都有效,则报告需要更少翻转的那个。