Permutation
https://codility.com/programmers/lessons/4-counting_elements/perm_check
by levrun
HTML
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine-html.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/2.5.2/boot.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/2.5.2/jasmine.css">
TypeScript
/*
https://codility.com/programmers/lessons/4-counting_elements/perm_check/
Check whether array A is a permutation.
*/
function solution(A) {
// write your code in JavaScript (Node.js 6.4.0)
let set = new Set();
for(var i = 0; i < A.length; i++) {
if(A[i] < 1 || A[i] > A.length || set.has(A[i])) {
return 0;
}
set.add(A[i]);
}
return 1;
}
describe("Permutation", function() {
it("simple test with permutation", function() {
var A = [4, 1, 3, 2];
var result = 1;
expect(solution(A)).toBe(result);
});
it("simple test wrong permutation", function() {
var A = [4, 1, 3];
var result = 0;
expect(solution(A)).toBe(result);
});
it("simple test wrong permutation", function() {
var A = [4, 0, 3, 3];
var result = 0;
expect(solution(A)).toBe(result);
});
it("simple test wrong permutation", function() {
var A = [4, 6, 0, 0];
var result = 0;
expect(solution(A)).toBe(result);
});
});