当前位置: 首页 > 知识库问答 >
问题:

JAVA的HackerRank Anagram程序在我的Eclipse上运行良好,但在HackerRank平台上却不行

柯波娃
2023-03-14
import java.util.Scanner;

public class Solution {

    static boolean isAnagram(String a, String b) {
        if(a.length()!=b.length())
        return false;
        char c1[]=a.toCharArray();
        char c2[]=b.toCharArray();
        java.util.Arrays.sort(c1);
        java.util.Arrays.sort(c2);
        a=String.valueOf(c1);
        b=String.valueOf(c2);

        if(a.equalsIgnoreCase(b))
        return true;
        else
        return false;
    }

  public static void main(String[] args) {
    
        Scanner scan = new Scanner(System.in);
        String a = scan.next();
        String b = scan.next();
        scan.close();
        boolean ret = isAnagram(a, b);
        System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
    }
}

请指教。

共有1个答案

澹台华采
2023-03-14

在数组包含的排序结束时,

    char c1[]=a.toCharArray();
    char c2[]=b.toCharArray();
    java.util.Arrays.sort(c1); // c1 = ['H','e','l','l','o']
    java.util.Arrays.sort(c2); // c2 = ['e','h','l','l','o']

在此步骤之后,当您将其转换回字符串时,

    a=String.valueOf(c1); //a = "Hello"
    b=String.valueOf(c2); //b = "ehllo"

因此,当您比较a和B时,它返回false。

 类似资料: