我该如何编写MU拼图的规则3?

时间:2016-02-20 02:21:36

标签: java eclipse string split

我正在看godel escher bach的MU谜题,我正在尝试实施一套规则。

规则是

规则1:如果你的字符串以I结尾,你可以在结尾添加一个U:x I→x IU

规则2:如果字符串以M开头,则可以将M之后的内容加倍:M x→M x x

规则3:如果字符串中有III,则可以用U:x III y→x U y替换它

规则4:如果你在一个字符串中有UU,你可以完全删除它:x UU y→x y

我从所有这些规则中得到了结果,但我不相信我的规则3的代码有效。

我的字符串输入是“MIIII”

我得到输出:[MIIIIU,MIIIIIIII,MUI,MIU]

我正在寻找的输出。

但是我相信我编码它的方式并没有正确地替换U.

我认为如果我的输入是“MIIIIII”我相信我应该得到结果MUU请纠正我,如果我错了。

但是我的代码返回MU,因为我使用split并在字符串中添加一个U,但是当我认为它应该返回两个U时,它会将所有6个I替换为U.

此规则的代码是

if(s.contains ("III")){

        String parts[] = s.split("III");// split at III and handle empty string

        String x = parts[0]; // Prefix;
        String y = parts[1]; //suffix

        list.add(x+"U"+y);
        list.add(x+y+"U");
    }
}

任何关于如何更好地解决这个问题的建议都将不胜感激。

由于

0 个答案:

没有答案