Check Two Strings are Anagram
Two strings are anagrams if they contain the same characters in any order.
Sample input
listen, silent
Sample output
true
Solution
def is_anagram(a, b):
return sorted(a) == sorted(b)
print(is_anagram("listen", "silent"))
function isAnagram(a, b) {
const norm = s => s.split("").sort().join("");
return norm(a) === norm(b);
}
console.log(isAnagram("listen", "silent"));
import java.util.Arrays;
public class Main {
static boolean isAnagram(String a, String b) {
char[] x = a.toCharArray();
char[] y = b.toCharArray();
Arrays.sort(x);
Arrays.sort(y);
return Arrays.equals(x, y);
}
public static void main(String[] args) {
System.out.println(isAnagram("listen", "silent"));
}
}
fun isAnagram(a: String, b: String) =
a.toCharArray().sorted() == b.toCharArray().sorted()
fun main() {
println(isAnagram("listen", "silent"))
}
func isAnagram(_ a: String, _ b: String) -> Bool {
return a.sorted() == b.sorted()
}
print(isAnagram("listen", "silent"))
bool isAnagram(String a, String b) {
var x = a.split('')..sort();
var y = b.split('')..sort();
return x.join() == y.join();
}
void main() {
print(isAnagram('listen', 'silent'));
}
#include <iostream>
#include <algorithm>
using namespace std;
bool isAnagram(string a, string b) {
sort(a.begin(), a.end());
sort(b.begin(), b.end());
return a == b;
}
int main() {
cout << (isAnagram("listen", "silent") ? "true" : "false") << endl;
return 0;
}
#include <stdio.h>
#include <string.h>
int isAnagram(const char *a, const char *b) {
int count[256] = {0};
if (strlen(a) != strlen(b)) return 0;
for (int i = 0; a[i]; i++) count[(unsigned char) a[i]]++;
for (int i = 0; b[i]; i++) count[(unsigned char) b[i]]--;
for (int i = 0; i < 256; i++) if (count[i] != 0) return 0;
return 1;
}
int main() {
printf("%s\n", isAnagram("listen", "silent") ? "true" : "false");
return 0;
}