@@ -856,13 +856,13 @@ console.log(DNAStrand('GTAT')); // 'CATA'
856
856
857
857
``` js
858
858
const DNAStrand = dna => {
859
- const MAP = {
859
+ const dnaMap = {
860
860
A : ' T' ,
861
861
T : ' A' ,
862
862
G : ' C' ,
863
863
C : ' G' ,
864
864
};
865
- return [... dna].map (ele => MAP [ele]).join (' ' );
865
+ return [... dna].map (ele => dnaMap [ele]).join (' ' );
866
866
};
867
867
```
868
868
@@ -893,7 +893,13 @@ console.log(isIsogram('')); // true
893
893
894
894
``` js
895
895
const isIsogram = str => {
896
- return str .length === new Set (str .toLowerCase ()).size ;
896
+ const lowerStr = str .toLowerCase ();
897
+
898
+ // Using Set
899
+ return str .length === new Set (lowerStr).size ;
900
+
901
+ // Alternative solution using every()
902
+ // return [...lowerStr].every((ele, index) => lowerStr.indexOf(ele) === index);
897
903
};
898
904
```
899
905
@@ -921,12 +927,12 @@ fizzBuzz(); // 1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, ...
921
927
922
928
``` js
923
929
const fizzBuzz = () => {
924
- let result ;
925
- for (let i = 1 ; i <= 100 ; i ++ ) {
926
- result = ' ' ;
927
- if (i % 3 === 0 ) result += ' Fizz' ;
928
- if (i % 5 === 0 ) result += ' Buzz' ;
929
- console .log (result || i );
930
+ let output ;
931
+ for (let num = 1 ; num <= 100 ; num ++ ) {
932
+ output = ' ' ;
933
+ if (num % 3 === 0 ) output += ' Fizz' ;
934
+ if (num % 5 === 0 ) output += ' Buzz' ;
935
+ console .log (output || num );
930
936
}
931
937
};
932
938
```
@@ -948,27 +954,26 @@ const duplicateCount = text => {
948
954
949
955
console .log (duplicateCount (' ' )); // 0
950
956
console .log (duplicateCount (' abcde' )); // 0
957
+ console .log (duplicateCount (' abA11' )); // 2
951
958
console .log (duplicateCount (' aabbcde' )); // 2
952
- console .log (duplicateCount (' aabBcde' )); // 2, "should ignore case"
959
+ console .log (duplicateCount (' aabBcde' )); // 2
953
960
console .log (duplicateCount (' Indivisibility' )); // 1
954
- console .log (duplicateCount (' Indivisibilities' )); // 2, "characters may not be adjacent"
961
+ console .log (duplicateCount (' Indivisibilities' )); // 2
955
962
```
956
963
957
964
<details ><summary >Solution</summary >
958
965
959
966
``` js
960
967
const duplicateCount = text => {
961
- text = text .toLowerCase ();
962
- const freq = {};
963
- for (let letter of text) {
964
- freq[letter] = (freq[letter] || 0 ) + 1 ;
965
- }
968
+ const lowercaseText = text .toLowerCase ();
969
+ let frequency = {};
970
+ let count = 0 ;
966
971
967
- let result = 0 ;
968
- for ( let letterin freq) {
969
- if (freq [letter] > 1 ) result ++ ;
972
+ for ( const letter of lowercaseText) {
973
+ frequency[ letter] = (frequency[letter] || 0 ) + 1 ;
974
+ if (frequency [letter] === 2 ) count ++ ;
970
975
}
971
- return result ;
976
+ return count ;
972
977
};
973
978
```
974
979
0 commit comments