這個anagram項目運作良好,但對於像「自戀/一個人危機」這樣的一些例子,輸出應該是錯誤的,因爲自戀中有額外的「s」,但它確實如此。我對編碼很陌生,所以我只需要一些幫助來解決這個問題。針對java的超級anagram幫助
import java.util.Scanner;
public class SuperAnTester{
public static void main(String[] args){
System.out.println("Enter a phrase: ");
Scanner scan = new Scanner(System.in);
String s1 = scan.nextLine();
System.out.println("Enter a second phrase:");
String s2 = scan.nextLine();
SuperAnagram tester = new SuperAnagram(s1,s2);
System.out.println(tester.isSuperAnagram());
}
}
這裏是測試部分:
繼承人即需要輸入代碼
public class SuperAnagram{
public String s1;
public String s2;
public char s1Array[];
public char s2Array[];
public SuperAnagram(String firstStr, String secondStr){
s1=firstStr;
s2=secondStr;
}
public void s1Char(){
s1=s1.toLowerCase();
s1Array=s1.toCharArray();
}
public void s2Char(){
s2=s2.toLowerCase();
s2Array=s2.toCharArray();
}
public boolean isSuperAnagram(){
s1Char();
s2Char();
boolean isSuperAnagram=false;
if (s1Array.length > s2Array.length){
isSuperAnagram=false;
return isSuperAnagram;
}
else{
for (int x=0; x<s1Array.length; x++){
char let = s1Array[x];
for (int j=0; j < s2Array.length; j++){
if (s2Array[j] == let){
isSuperAnagram = true;
s2Array[j]= ' ';
}
}
}
}
return isSuperAnagram;
}
}
是否有上了班,或者你被允許使用的方法沒有什麼限制?有一個更簡單的方法來檢查anagrams。 –
由於「o」 –
,所以它更顯然不是一個字謎因此,如果if(s2Array [j] == let)爲真,那麼您將'isSuperAnagram'設置爲'true' ...以及如果下一個檢查是否對每個其他字符都是錯誤的?如果找不到'let'的匹配字符,它不會重置它(或直接返回false)嗎? – Tom