Source
Girl Develop It San Francisco,
Teaching Materials,
Exercises: Strings: MixUp
Description
Given two strings s1
and s2
and an integer n
, swap the first n
characters of s1
and s2
and concatenate the results, separated by
a space. If either string is less than or equal to n
characters in
length, return them unmodified but concatenated, separated by a space.
1
2
| 'foo', 'bar', 3 ⟹ 'foo bar'
'foobar', 'bazqux', 3 ⟹ 'bazbar fooqux'
|
My solution
1
2
3
4
5
6
7
8
| const headswap = (s1, s2, n) =>
s1.length <= n || s2.length <= n
? s1 + ' ' + s2
: s2.substring(0, n) + s1.substring(n) + ' ' +
s1.substring(0, n) + s2.substring(n);
module.exports = headswap;
|
Tests
1
2
3
4
5
6
7
8
9
10
11
12
| const assert = require('assert')
, headswap = require('./headswap.js');
describe('#headswap()', () => {
it('Should leave strings unmodified', () => {
assert.strictEqual(headswap('foo', 'bar', 3), 'foo bar');
});
it('Should modify strings', () => {
assert.strictEqual(headswap('foobar', 'bazqux', 3), 'bazbar fooqux');
});
});
|