Skip to content

Instantly share code, notes, and snippets.

@dmnugent80
Last active August 29, 2015 14:16
Show Gist options
  • Save dmnugent80/0263fed73e182902f253 to your computer and use it in GitHub Desktop.
Save dmnugent80/0263fed73e182902f253 to your computer and use it in GitHub Desktop.
String Array Has Anagrams
//second attempt, using HashSet and detecting collision
import java.util.Arrays;
import java.util.HashSet;
public class HasAnagrams
{
public static void main(String[] args)
{
String[] arr = {"bag", "bat", "tab"};
boolean result = hasAnagrams(arr);
System.out.print(result);
}
public static boolean hasAnagrams(String[] arr){
HashSet<String> set = new HashSet<String>();
for (int i = 0; i < arr.length; i++){
if (set.add(sort(arr[i])) == false){
return true;
}
}
return false;
}
public static String sort(String s){
char[] ch = s.toCharArray();
Arrays.sort(ch);
return (new String(ch));
}
}
//First attempt:
import java.util.Arrays;
public class HasAnagrams
{
public static void main(String[] args)
{
String[] arr = {"bag", "bat", "tab"};
boolean result = hasAnagrams(arr);
System.out.print(result);
}
public static boolean hasAnagrams(String[] arr){
for (int i = 0; i < arr.length; i++){
for (int j = i+1; j < arr.length; j++){
if (isAnagram(arr[i], arr[j])) return true;
}
}
return false;
}
public static boolean isAnagram(String s1, String s2){
if (s1.length() != s2.length()) return false;
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
Arrays.sort(ch1);
Arrays.sort(ch2);
return (new String(ch1).equals(new String(ch2)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment