java - 寻找字谜的简单算法

标签 java anagram

public class anagrm {
public static void main(String args[]){
    String s1 = new String();
    String s2 = new String();
    int count = 0;
    Scanner sc = new Scanner(System.in);
    s1 = sc.nextLine();``
    s2 = sc.nextLine();
    if(s1.length()==s2.length())
        for (int i = 0; i < s1.length(); i++)
            for (int j = 0; j < s1.length(); j++)
                if (s1.charAt(i) == s2.charAt(j)){
                    count++
                }

    if(count>=s1.length())
        System.out.println("string is anagram");
    else
        System.out.println("string is not anagram");
    System.out.println(count);
}


}

它为军队和马尔提供了真实的信息..我明白错误在哪里,但我想以这种方式完成...

最佳答案

每当一个字母在 s1 中出现多次时,您就会遇到错误,即使 s2 仅出现一次该字母,您每次都会增加计数器。解决此问题的一种方法是使用 StringBuilder 来代替,当您找到字母中的匹配项时,使用 deleteCharAt 方法从 s2 中删除该字母。为此,您还需要将第二个 for 循环更改为循环 s2.length ,因为它会不断变短。不是那么优雅,但它会起作用。

关于java - 寻找字谜的简单算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045317/

相关文章:

c - 如何在c中检查两个单词是否是字谜

algorithm - 查找给定单词的字谜

java - 翻转字符串中的位

java - 比较两个列表的字谜 - Java

python - 打印输入字谜中字谜的最大出现次数和字谜本身

java - 属性 : system vs. 部署描述符与属性文件的优先级

objective-c - 字谜算法 Objective-C

java - 如何在android中绘制带有填充颜色的自定义圆圈?

java - 用户登录时导航栏图像应该改变(JSF 2.0 + primefaces)

java - 淡出 JButton 直到选择 JCheckbox