Skip to content

Commit c090c01

Browse files
ädded another similar solution to count and say problem
1 parent 13b5dbd commit c090c01

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

38 Count and Say.js

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ var countAndSay = function(n) {
66
if(n === null || n.length === 0){
77
return "";
88
}
9-
9+
1010
var cur = "1";
1111
var num = 1;
12-
12+
1313
while(n > 1){
1414
var r = "";
15-
15+
1616
for(var i = 0; i < cur.length; i++){
1717
if(i < cur.length - 1 && cur[i] === cur[i+1]){
1818
num++;
@@ -21,17 +21,17 @@ var countAndSay = function(n) {
2121
num = 1;
2222
}
2323
}
24-
24+
2525
cur = r;
2626
n--;
2727
}
28-
return cur;
28+
return cur;
2929
};
3030

3131

3232
// var countAndSay = function(n) {
3333
// var str = '1';
34-
34+
3535
// for(var i = 1; i < n; i++) {
3636
// var newStr = '';
3737
// var count = 1;
@@ -44,11 +44,33 @@ var countAndSay = function(n) {
4444
// count = 1;
4545
// }
4646
// }
47-
47+
4848
// newStr += count + str[j - 1];
4949
// str = newStr;
5050
// }
5151

5252
// return str;
5353
// };
5454

55+
56+
var countAndSay = function(n) {
57+
if(n === 1) {
58+
return "1";
59+
}
60+
var partial = "11";
61+
62+
for(var i = 3; i <= n; i++) {
63+
var newStr = "";
64+
for(var j = 0; j < partial.length; j++) {
65+
var letter = partial[j];
66+
var count = 1;
67+
while(partial[j] === partial[j + 1]) {
68+
j++;
69+
count++;
70+
}
71+
newStr = newStr + count + letter;
72+
}
73+
partial = newStr;
74+
}
75+
return partial;
76+
};

0 commit comments

Comments
 (0)