Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7e2c9a0

Browse files
committed
Refactor solutions
1 parent 81a83ab commit 7e2c9a0

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

‎README.md

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -856,13 +856,13 @@ console.log(DNAStrand('GTAT')); // 'CATA'
856856

857857
```js
858858
const DNAStrand = dna => {
859-
const MAP = {
859+
const dnaMap = {
860860
A: 'T',
861861
T: 'A',
862862
G: 'C',
863863
C: 'G',
864864
};
865-
return [...dna].map(ele => MAP[ele]).join('');
865+
return [...dna].map(ele => dnaMap[ele]).join('');
866866
};
867867
```
868868

@@ -893,7 +893,13 @@ console.log(isIsogram('')); // true
893893

894894
```js
895895
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);
897903
};
898904
```
899905

@@ -921,12 +927,12 @@ fizzBuzz(); // 1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, ...
921927

922928
```js
923929
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);
930936
}
931937
};
932938
```
@@ -948,27 +954,26 @@ const duplicateCount = text => {
948954

949955
console.log(duplicateCount('')); // 0
950956
console.log(duplicateCount('abcde')); // 0
957+
console.log(duplicateCount('abA11')); // 2
951958
console.log(duplicateCount('aabbcde')); // 2
952-
console.log(duplicateCount('aabBcde')); // 2, "should ignore case"
959+
console.log(duplicateCount('aabBcde')); // 2
953960
console.log(duplicateCount('Indivisibility')); // 1
954-
console.log(duplicateCount('Indivisibilities')); // 2, "characters may not be adjacent"
961+
console.log(duplicateCount('Indivisibilities')); // 2
955962
```
956963

957964
<details><summary>Solution</summary>
958965

959966
```js
960967
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;
966971

967-
let result =0;
968-
for (letletterin freq) {
969-
if (freq[letter] >1) result++;
972+
for (constletterof lowercaseText) {
973+
frequency[letter] = (frequency[letter] ||0) +1;
974+
if (frequency[letter] ===2) count++;
970975
}
971-
return result;
976+
return count;
972977
};
973978
```
974979

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /