Given two strings, work out if they both have exactly the same characters in them.
Example
Input
word, wrdo
This returns true
because they are the same but just scrambled.
Input
word, wwro
This returns false
.
Rules
Here are the rules!
- Assume input will be at least 1 char long, and no longer than 8 chars.
- No special characters, only a–z
- All inputs can be assumed to be lowercase
Test Cases
boat, boat = true
toab, boat = true
oabt, toab = true
a, aa = false
zzz, zzzzzzzz = false
zyyyzzzz, yyzzzzzy = true
sleepy, pyels = false
p,p = true
Solutions
Jump to C, JavaScript, PHP, C# Solution.
You can submit your own solution in comment section in same/different programming language. If your solution is better or in different language we'll add here.
C
#include <stdio.h>
t[256],i;
int main(c)
{
for(;c+3;)
(i=getchar())>10?t[i]+=c:(c-=2);
for(i=257;--i&&!t[i-1];);
puts(i?"false":"true");
return 0;
}
JavaScript
<html>
<body>
<script>
function a(b){
return b.split('').sort().join()
}
alert(a('abc')==a('bca'));
</script>
</body>
</html>
PHP
function d($s){
return array_count_values(str_split($s));
}
echo d($argv[1]) == d($argv[2]);
CSharp
using System;
using System.Linq;
namespace testcs
{
class Program
{
static void Main(string[] args)
{
string a="asd", b="sda";
Console.Write(a.OrderBy(_ => _).SequenceEqual(b.OrderBy(_ => _)));
}
}
}