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

两个是字谜还是不是字谜?

慕嘉运
2023-03-14

我的问题是,在这段代码中,最初我们将boolean isAnagram设为false,然后设置条件,但是我们得到的结果是错误的。因为很清楚,它们不是anagram,但是代码输出是“anagram”。

package strings;

public class Anagrams {

    public static void main(String[] args) {
        
        String a = "aab";
        String b = "abc";
        
        boolean isAnagram = false;
        
        int al[] = new int[256];
        int bl[] = new int[256];
        
        for(char c:a.toCharArray()) {
            int index = (int)c;
            al[index]++;
            }
        for(char c:b.toCharArray()) {
            int index = (int)c;
            bl[index]++;
            }
        
        for(int i = 0; i<256; i++) {
            if(al[i] == bl[i]) {
                isAnagram = true;
            }
        }
        
        if(isAnagram) {
            System.out.println("anagram");
        }else {
            System.out.println("not anagram");
        }
    
        }
    }
}

共有1个答案

戚学
2023-03-14

我认为排序字符串然后比较它们更简单。

public static void main(String[] args) {

    String a = "aab";
    String b = "abc";

    char[] a1 = a.toLowerCase().toCharArray();
    char[] b1 = b.toLowerCase().toCharArray();

    Arrays.sort(a1);
    Arrays.sort(b1);
    
    boolean isAnagram = new String(a1).equals(new String(b1));

    System.out.println(isAnagram ? "anagram" : "not anagram");
}
 类似资料:
  • 本文向大家介绍什么是C语言的字谜?,包括了什么是C语言的字谜?的使用技巧和注意事项,需要的朋友参考一下 字谜字符串只不过是在另一个字符串中出现相同次数的所有字符,我们称之为字谜。 用户输入两个字符串。我们需要计算每个字母(“ a”至“ z”)出现在其中的次数,然后比较它们相应的计数。字符串中字母的出现频率是它出现在其中的次数。 如果两个字符串对特定字母的频率计数相同,那么我们可以说这两个字符串是字

  • 问题内容: 我有一个带有参数的方法。 在这种方法中,我完全知道在“ o”中存在一个不为空的值。无需检查或执行其他操作。我必须把它当作一个对象来对待。 只是好奇-什么便宜?将其投放或使用?还是按时间/ CPU /内存价格相同? 更新:该方法可以接受,因为它是接口的实现。无法更改参数类型。 而且根本不可能。我只是想说我不需要检查它是否为空或为空。就我而言,总是有一个非空字符串。 问题答案: 强制转换为

  • 问题内容: 在添加时产生195。是输出数据类型还是? 问题答案: 添加Java字符,短裤或字节的结果是一个int: Java语言规范对二进制数值的促进: 如果任何一个操作数是引用类型,则执行装箱转换(第5.1.8节)。然后: 如果一个操作数的类型为double,则另一个将转换为double。 否则,如果其中一个操作数的类型为float,则另一个将转换为float。 否则,如果其中一个操作数的类型为

  • class Anagram: """ @:param s1: The first string @:param s2: The second string @:return true or false """ def Solution1(s1,s2): alist = list(s2) pos1 = 0 stillOK = True wh

  • 问题内容: 对于长数据类型,我可以在L后面加上数字以使编译器知道它长。字节和短怎么样? 作为动机,以下产生类型不匹配错误: 问题答案: 您实际上在谈论的是整数 文字 ()与长 文字 ()。实际上,在Java中没有短或字节字面量。但它 通常 并不重要,因为从整数常量的类型的隐式转换,和。从而: 仅当文字在所需范围内时,才允许隐式转换。如果不是,则需要类型转换。例如 在其他情况下,需要显式转换;例如,

  • 问题内容: 有谁知道如何检查JavaScript中的变量是数字还是字符串? 问题答案: 如果你处理的文字符号,而不是构造函数,你可以使用typeof运算。 如果您是通过构造函数创建数字和字符串,比如,你应该记住,可能会返回了。 检查类型的更简单的方法可能是利用在underscore.js中找到的方法可以在[此处找到带注释的源代码), 这将返回以下布尔值: