Skip to content

Commit 7690a36

Browse files
author
Kyle Maune
committed
added second solution for swap II
1 parent 607fac7 commit 7690a36

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

Medium Difficulty/swapII2.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// coderbyte solution for swap II
2+
// splashinn
3+
4+
function swapCase(str) {
5+
var str = str.split("");
6+
str = str.map(function(char){
7+
var code = char.charCodeAt(0);
8+
if (code >= 97 && code <= 122) return char.toUpperCase();
9+
if (code >= 65 && code <= 90) return char.toLowerCase();
10+
return char;
11+
});
12+
return str.join("");
13+
}
14+
15+
function SwapII(str) {
16+
var str = swapCase(str);
17+
18+
var prevDigit = -1;
19+
var prevPos = -1;
20+
var newStr = [];
21+
22+
for (var i = 0; i < str.length; i++) {
23+
var c = str.charCodeAt(i);
24+
if (c >= 48 && c <= 57) {
25+
if (prevDigit >= 0) {
26+
newStr[prevPos] = str.charAt(i);
27+
newStr[i] = prevDigit;
28+
prevDigit = -1;
29+
prevPos = -1;
30+
} else {
31+
newStr[i] = str.charAt(i);
32+
prevDigit = str.charAt(i);
33+
prevPos = i;
34+
}
35+
} else if(c >= 97 && c <= 122 || c >= 65 && c <= 90) {
36+
newStr[i] = str.charAt(i);
37+
} else {
38+
newStr[i] = str.charAt(i);
39+
prevDigit = -1;
40+
prevPos = -1;
41+
}
42+
}
43+
return newStr.join("");
44+
}

0 commit comments

Comments
 (0)