编写函数以检查两个给定的字符串是否为字谜彼此之间。
字符串的字谜是另一个包含相同字符的字符串, 只有字符顺序可以不同。
例如, " abcd"和" dabc"是彼此的Anagram。
文章图片
推荐:请尝试以下方法{IDE}首先, 在继续解决方案之前。 【使用Java中的HashMap检查两个字符串是否互为字母】方法: 哈希图通过将每个字符串的字符映射到单独的哈希图并将它们进行比较, 还可以用于查找两个给定的字符串是否为字谜。
实现
// Java code to check whether two strings
// are Anagram or not using HashMapimport java.io.*;
import java.util.*;
class GFG {// Function to check whether two strings
// are an anagram of each other
static boolean areAnagram(String str1, String str2)
{HashMap<
Character, Integer>
hmap1
= new HashMap<
Character, Integer>
();
HashMap<
Character, Integer>
hmap2
= new HashMap<
Character, Integer>
();
char arr1[] = str1.toCharArray();
char arr2[] = str2.toCharArray();
// Mapping first string
for ( int i = 0 ;
i <
arr1.length;
i++) {if (hmap1.get(arr1[i]) == null ) {hmap1.put(arr1[i], 1 );
}
else {
Integer c = ( int )hmap1.get(arr1[i]);
hmap1.put(arr1[i], ++c);
}
}// Mapping second String
for ( int j = 0 ;
j <
arr2.length;
j++) {if (hmap2.get(arr2[j]) == null )
hmap2.put(arr2[j], 1 );
else {Integer d = ( int )hmap2.get(arr2[j]);
hmap2.put(arr2[j], ++d);
}
}if (hmap1.equals(hmap2))
return true ;
else
return false ;
}// Test function
public static void test(String str1, String str2)
{System.out.println( "Strings to be checked are:\n"
+ str1 + "\n" + str2 + "\n" );
// Find the result
if (areAnagram(str1, str2))
System.out.println( "The two strings are "
+ "anagrams of each other\n" );
else
System.out.println( "The two strings are not"
+ " anagrams of each other\n" );
}// Driver program
public static void main(String args[])
{// Get the Strings
String str1 = "lsbin" ;
String str2 = "forgeeksgeeks" ;
// Test the Strings
test(str1, str2);
// Get the Strings
str1 = "lsbin" ;
str2 = "geeks" ;
// Test the Strings
test(str1, str2);
}
}
输出如下:
Strings to be checked are:lsbinforgeeksgeeksThe two strings are anagrams of each otherStrings to be checked are:lsbingeeksThe two strings are not anagram of each other
相关文章: 检查两个字符串是否彼此相似
推荐阅读
- PHP如何使用ftp_chdir()函数(代码示例)
- Scala中的链式包装子句用法指南
- jQuery如何使用toArray()方法()
- PHP如何使用Ds Queuealloc()函数(分配内存)
- 下一个更大数字的二进制表示,具有相同的1和0
- Windows8系统打开设备管理器的步骤
- Win8每次开机都要黑屏一段时间的处理办法
- Win8系统笔记本电脑屏幕闪烁的处理办法
- Win8系统开始屏幕中找不到IE磁贴怎样办?