-
-
Save AbdullahMagat/1c2d64668539daad3885f39a09cb4136 to your computer and use it in GitHub Desktop.
import java.util.Scanner; | |
public class Solution { | |
static boolean isAnagram(String a, String b) { | |
// // once you declare a.toUppercase you should assign it to a. you cannot define it as just a.toUppercase... | |
// //I solved it with the long way however I could put a and b in a character array and then use Arrays.sort(arrayname). after this steps convert them to string and check if they are equel. | |
a=a.toUpperCase(); | |
b=b.toUpperCase(); | |
boolean ret = false; | |
StringBuilder c= new StringBuilder(b); | |
if(a.length()==b.length()){ | |
for(int i=0; i<a.length();i++){ | |
for(int j=0; j<c.length();j++){ | |
if(a.charAt(i)==c.charAt(j)){ | |
c.deleteCharAt(j); | |
if(i==a.length()-1 && c.length()==0){ | |
ret=true; | |
break; | |
} | |
break; | |
} | |
} | |
} | |
}return ret; | |
} | |
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" ); | |
} | |
} |
import java.io.;
import java.util.;
public class Solution {
public static String lvalue(String s){
char str[]=new char[s.length()];
str=s.toCharArray();
char temp;
for(int i=0;i<s.length();i++){
for(int j=0;j<s.length()-1;j++){
temp=str[j+1];
if(str[j]>str[j+1]){
str[j+1]=str[j];
str[j]=temp;
}
}
}
String ss = new String(str);
return ss;
}
public static void main(String[] args) {
String str1,str2;
Scanner in = new Scanner(System.in);
str1=in.next();
str2=in.next();
str1=str1.toLowerCase();
str2=str2.toLowerCase();
if(str1.length()==str2.length()){
str1=lvalue(str1);
str2=lvalue(str2);
if(str1.equals(str2))
System.out.println("Anagrams");
else
System.out.println("Not Anagrams");
}
else
System.out.println("Not Anagrams");
}
}
A much more simple solution:
private static boolean isAnagram(String a, String b) {
if (a.length() != b.length()) {
return false;
}
a = a.toLowerCase();
b = b.toLowerCase();
for (int i = 0; i < b.length(); i++) {
a = a.replaceFirst(String.valueOf(b.charAt(i)), "");
}
return a.isEmpty() ? true : false;
}
What about this solution guys?
package chapter01.exercise_18;
public class CheckTwoStringsAnagram {
public static void main(String[] args) {
var one = "geeksforgeeks";
var two = "forgeeksgeeks";
var areAnagrams = checkIfTwoStringsAreAnagrams(one, two);
System.out.format("The strings \"%s\" and \"%s\" are anagrams? %b", one, two, areAnagrams);
}
private static boolean checkIfTwoStringsAreAnagrams(final String one, final String two) {
var oneWithoutSpacesAndLowerCase = one.replaceAll("\\s", "").toLowerCase();
var twoWithoutSpacesAndLowerCase = two.replaceAll("\\s", "").toLowerCase();
var countOneCharacters = oneWithoutSpacesAndLowerCase.chars().sum();
var countTwoCharacters = twoWithoutSpacesAndLowerCase.chars().sum();
return !oneWithoutSpacesAndLowerCase.equals(twoWithoutSpacesAndLowerCase)
&& countOneCharacters == countTwoCharacters;
}
}
A much more simple solution:
private static boolean isAnagram(String a, String b) { if (a.length() != b.length()) { return false; } a = a.toLowerCase(); b = b.toLowerCase(); for (int i = 0; i < b.length(); i++) { a = a.replaceFirst(String.valueOf(b.charAt(i)), ""); } return a.isEmpty() ? true : false; }
Is more simple than everything 👯
static boolean isAnagram(String a, String b) {
// Complete the function
a = a.toLowerCase();
b = b.toLowerCase();
int aVal = 0, bVal = 0;
if ( a.length() != b.length() )
return false;
for ( int i = 0; i < a.length(); i++ ) {
aVal += (int)a.charAt(i)*(int)a.charAt(i);
bVal += (int)b.charAt(i)*(int)b.charAt(i);
}
return aVal == bVal ? true : false;
}
seems this is more simpler...
import java.util.Scanner;
public class Solution {
static boolean isAnagram(String a, String b) {
// Complete the function
if(a.length() == b.length()){
a=a.toUpperCase();
b=b.toUpperCase();
char[] ch1 = a.toCharArray();
char[] ch2 = b.toCharArray();
char temp;
for(int i=0;i<ch1.length;i++){
for(int j=i+1;j<ch1.length;j++){
if(ch1[i]>ch1[j]){
temp = ch1[i];
ch1[i] =ch1[j];
ch1[j] = temp;
}
}
}
for(int i=0;i<ch2.length;i++){
for(int j=i+1;j<ch2.length;j++){
if(ch2[i]>ch2[j]){
temp = ch2[i];
ch2[i] =ch2[j];
ch2[j] = temp;
}
}
}
//System.out.println(ch1);
//System.out.println(ch2);
//int[] charcounta = new int[ch1.length];
for (int i = ch1.length - 1; i >= 0; i--)
{
if(ch1[i]!=ch2[i]){
return false;
}else{
continue;
}
}
return true;
}
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" );
}
}
@anushree71199