2.7 KiB
2.7 KiB
title, id, challengeType, forumTopicId
title | id | challengeType | forumTopicId |
---|---|---|---|
Compare a list of strings | 596e457071c35c882915b3e4 | 5 | 302235 |
Description
- test if they are all lexically equal
- test if every string is lexically less than the one after it (i.e. whether the list is in strict ascending order)
Instructions
Tests
tests:
- text: <code>allEqual</code> should be a function.
testString: assert(typeof allEqual === 'function');
- text: <code>azSorted</code> should be a function.
testString: assert(typeof azSorted === 'function');
- text: <code>allEqual(["AA", "AA", "AA", "AA"])</code> should return true.
testString: assert(allEqual(testCases[0]));
- text: <code>azSorted(["AA", "AA", "AA", "AA"])</code> should return false.
testString: assert(!azSorted(testCases[0]));
- text: <code>allEqual(["AA", "ACB", "BB", "CC"])</code> should return false.
testString: assert(!allEqual(testCases[1]));
- text: <code>azSorted(["AA", "ACB", "BB", "CC"])</code> should return true.
testString: assert(azSorted(testCases[1]));
- text: <code>allEqual([])</code> should return true.
testString: assert(allEqual(testCases[2]));
- text: <code>azSorted([])</code> should return true.
testString: assert(azSorted(testCases[2]));
- text: <code>allEqual(["AA"])</code> should return true.
testString: assert(allEqual(testCases[3]));
- text: <code>azSorted(["AA"])</code> should return true.
testString: assert(azSorted(testCases[3]));
- text: <code>allEqual(["BB", "AA"])</code> should return false.
testString: assert(!allEqual(testCases[4]));
- text: <code>azSorted(["BB", "AA"])</code> should return false.
testString: assert(!azSorted(testCases[4]));
Challenge Seed
function allEqual(arr) {
return true;
}
function azSorted(arr) {
return true;
}
After Test
const testCases = [['AA', 'AA', 'AA', 'AA'], ['AA', 'ACB', 'BB', 'CC'], [], ['AA'], ['BB', 'AA']];
Solution
function allEqual(a) {
let out = true;
let i = 0;
while (++i < a.length) {
out = out && (a[i - 1] === a[i]);
} return out;
}
function azSorted(a) {
let out = true;
let i = 0;
while (++i < a.length) {
out = out && (a[i - 1] < a[i]);
} return out;
}