File tree Expand file tree Collapse file tree 1 file changed +29
-7
lines changed Expand file tree Collapse file tree 1 file changed +29
-7
lines changed Original file line number Diff line number Diff 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+ } ;
You can’t perform that action at this time.
0 commit comments