forked from ironhack-labs/lab-javascript-basic-algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
129 lines (94 loc) · 3.52 KB
/
index.js
File metadata and controls
129 lines (94 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// Iteration 1: Names and Input
const hacker1 = "Aslan";
console.log(`The driver's name is ${hacker1}`);
const hacker2 = "Partner";
console.log(`The navigator's name is ${hacker2}`);
// Iteration 2: Conditionals
if (hacker1.length > hacker2.length) {
console.log(`The driver has the longest name, it has ${hacker1.length} characters.`);
} else if (hacker2.length > hacker1.length) {
console.log(`It seems that the navigator has the longest name, it has ${hacker2.length} characters.`);
} else {
console.log(`Wow, you both have equally long names, ${hacker1.length} characters!`);
}
// Iteration 3: Loops
let driverName = "";
for (let i = 0; i < hacker1.length; i++) {
if (i === hacker1.length - 1) {
driverName += hacker1[i].toUpperCase();
} else {
driverName += hacker1[i].toUpperCase() + " ";
}
}
console.log(driverName);
let navigatorNameReversed = "";
for (let i = hacker2.length - 1; i >= 0; i--) {
navigatorNameReversed += hacker2[i];
}
console.log(navigatorNameReversed);
if (hacker1 < hacker2) {
console.log("The driver's name goes first.");
} else if (hacker2 < hacker1) {
console.log("Yo, the navigator goes first, definitely.");
} else {
console.log("What?! You both have the same name?");
}
// Bonus 1
const longText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam et ligula non magna dignissim tincidunt. Sed vitae massa at metus porta volutpat. Integer et sapien sed erat porttitor cursus. Curabitur euismod, justo et faucibus interdum, lacus mi posuere neque, et dignissim turpis lorem non mauris.
Praesent et sem in lorem volutpat luctus. Donec vulputate, neque et interdum facilisis, velit elit egestas odio, vitae pretium ipsum urna et mauris. Maecenas et magna id erat consequat luctus. Nulla facilisi. Aliquam et nibh nec justo pulvinar iaculis.
Vivamus et lectus sed turpis vulputate tincidunt. Cras et neque sed massa facilisis interdum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse et dolor vitae lacus placerat pretium.`;
let wordCount = 0;
let insideWord = false;
for (let i = 0; i < longText.length; i++) {
if (longText[i] !== " " && longText[i] !== "\n" && longText[i] !== "\t") {
if (insideWord === false) {
wordCount++;
insideWord = true;
}
} else {
insideWord = false;
}
}
console.log(`The text has ${wordCount} words.`);
let etCount = 0;
let currentWord = "";
for (let i = 0; i <= longText.length; i++) {
const currentCharacter = longText[i];
if (
i < longText.length &&
((currentCharacter >= "a" && currentCharacter <= "z") ||
(currentCharacter >= "A" && currentCharacter <= "Z"))
) {
currentWord += currentCharacter.toLowerCase();
} else {
if (currentWord === "et") {
etCount++;
}
currentWord = "";
}
}
console.log(`The word et appears ${etCount} times.`);
// Bonus 2
const phraseToCheck = "A man, a plan, a canal, Panama!";
let cleanPhrase = "";
for (let i = 0; i < phraseToCheck.length; i++) {
const currentCharacter = phraseToCheck[i].toLowerCase();
if (
(currentCharacter >= "a" && currentCharacter <= "z") ||
(currentCharacter >= "0" && currentCharacter <= "9")
) {
cleanPhrase += currentCharacter;
}
}
let isPalindrome = true;
for (let i = 0; i < cleanPhrase.length / 2; i++) {
if (cleanPhrase[i] !== cleanPhrase[cleanPhrase.length - 1 - i]) {
isPalindrome = false;
break;
}
}
if (isPalindrome) {
console.log(`"${phraseToCheck}" is a palindrome.`);
} else {
console.log(`"${phraseToCheck}" is not a palindrome.`);
}