我想制作一个字谜算法,但是这段代码不起作用。我的问题在哪里? 例如des和sed是字谜,但输出并不是字谜。 与此同时,我必须使用字符串方法,而不是数组。:)
public static boolean isAnagram(String s1 , String s2)
{
String delStr="";
String newStr="";
for(int i=0;i<s1.length();i++)
{
for(int j=0 ; j < s2.length() ; j++)
{
if(s1.charAt(i)==s2.charAt(j))
{
delStr=s1.substring(i,i+1);
newStr=s2.replace(delStr,"");
}
}
}
if(newStr.equals(""))
return true;
else
return false;
}
s2
(少一个字母)覆盖了newStr
。例如,如果s2
是ab
,当你匹配到b
时,newStr
变成了a
,然后当你匹配到a
时,newStr
并没有变为空字符串,而是变成了b
(因为它是s2
减去匹配字符)。这不是你代码中唯一的错误(重复字符、长度不同的字符串),但这是你首先会看到的错误。 - Konstantin TarashchanskiyArrays.equals( a.chars().filter(Character::isAlphabetic).sorted().toArray(), b.chars().filter(Character::isAlphabetic).sorted().toArray());
- Gene