Java 我应该如何编写MU难题的规则3?
我在看戈德尔·埃舍尔·巴赫的MU拼图,我正在尝试实现一套规则 规则是 规则1:如果字符串以I结尾,可以在末尾添加U:xi→ x IU 规则2:如果字符串以M开头,那么可以将M:mx后面的数字加倍→ M x x 规则3:如果字符串中有III,可以用U:x III y替换它→ xuy 规则4:如果字符串中有UU,则可以将其全部删除:x UU y→ xy 我已经从所有这些规则中得到了结果,但是我不相信我的规则3的代码有效 我的字符串输入是“MIIII” 我得到输出:[MIIIIU,MIIIIIIII,MUI,MIU] 这就是我想要的输出 然而,我相信我的编码方式并不能正确地替换U 我想如果我的输入是“MIIIIII”,我相信我应该得到结果,如果我错了,请纠正我 但是我的代码返回MU,因为我使用split并在字符串中添加一个U,但是当我认为它应该返回两个U时,这会用一个U替换所有6个I 这条规则的代码是Java 我应该如何编写MU难题的规则3?,java,eclipse,string,split,Java,Eclipse,String,Split,我在看戈德尔·埃舍尔·巴赫的MU拼图,我正在尝试实现一套规则 规则是 规则1:如果字符串以I结尾,可以在末尾添加U:xi→ x IU 规则2:如果字符串以M开头,那么可以将M:mx后面的数字加倍→ M x x 规则3:如果字符串中有III,可以用U:x III y替换它→ xuy 规则4:如果字符串中有UU,则可以将其全部删除:x UU y→ xy 我已经从所有这些规则中得到了结果,但是我不相信我的规则3的代码有效 我的字符串输入是“MIIII” 我得到输出:[MIIIIU,MIIIIIIII,
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");
}
}
任何关于如何更好地解决这个问题的建议都将不胜感激
谢谢
“MIIIIII”。拆分(“III”)
返回[“M”]
(已测试)。使用s.replaceAll(“III”,“U”)
。哦,顺便说一句,为什么你的名字是“user259571”?如果我使用s.replaceAll(“III”,“U”),那么我会得到MUI,这是我想要的结果之一,但它通过替换前3个i得到MUI,所以MIIII变成MUI。我还希望能够跳过第一个I并替换最后3个,从而产生MIU如果这有意义,我一定没有设置一个我想我只是用电子邮件帐户登录了,这是一段时间前我做的,可能用户名是自动的还是什么?“miiiii”。拆分(“III”)
返回[“M”]
(已测试)。使用s.replaceAll(“III”,“U”)
。哦,顺便说一句,为什么你的名字是“user259571”?如果我用s.replaceAll(“III”,“U”)“然后我会得到MUI,这是我想要的结果之一,但它通过替换前3个I得到MUI,所以MIIII变成了MUI。我还希望能够跳过第一个I,替换最后3个导致MIU,如果这有意义的话,我一定没有设置一个,我想我只是用电子邮件帐户登录了。这是一段时间前我做的,可能是美国ername是自动化的还是什么?