ααΈα’αααααααααα ααΆαααααα»αααα’ααααααααααΆααα’ααα
ααααΆααααα αααα»αα αα»ααα αα αααα·ααααΆ ααααΌαααΆααααα·ααΆαααΌαααα αΎαα ααααα·ααα½αααααΆααααα’αΎααα - ααΆαααααααΆααααΆααααααΆαααααααααααααααααα±ααα’αααααΌαα±ααΆαααΎααααΈααα½αααΆαααΆαααΆαααα’α ααα»ααααβαααβαα·αβααΆααααβαα αααααβαααα αΆβαααα»αααααΆαβα αααΎαβααβααααΌαβαααααααΆαα
ααΎαααΈααααα
ααα ααΆαα
αααΎαααΆααΉαααΆαα ααΆαααΆαααΆαααααααΆαα
αααΎααα·αααΆααααααΉαααΆαααΆααααα’αααααΆααααΆαααααΉαα’αα»ααααααααα ααα»αααααα½ααααα
ααααααΌααααααααΆαα αααααααα’αααααααΌαααααΎααΆαα
ααΎααααΆα ααααα·αα
αΆαααΆα
ααα·αα·αααααΆαα½α Google α¬αααααααααααααααα ααΆα ααααΆαααΆααααα»αααααΆααααααΌαααααα·α
ααααα α αΎααααα»αα αα»ααα½αα
ααα½αααΆαααααααα
ααααΆααααααΆααααααααα ααα»αααααα·ααααααΆα
αααΎααα
αααααααΆααααααΆααααΌααααααααΈαααα α’ααααααααααααΌαααΆαα§αααα·ααααααΆααα·ααΆααααα·α
αα
ααΆα JavaScript ααααααΆαααααΆααΏααααααΌαααΆαααααΎααΆααΆααα·α
αα
αααααΆααα’ααααααααααααΆαααΆαα
ααΎαααααΉαα αααααΆααα’αααα’αΆαααΆααα’αααα "Habr" - ααΆααααα α»αααααα 10 rubles αα αααα α»αααααααααα»ααααααα·ααααΆ Skillbox ααΆαα½ααααααααΎαααααΌαααααααααααΆα "Habr" α
Skillbox ααααΆαα αααααα·ααααΆααΆααααααα
"α’αααα’αα·ααααααα ααα PRO" .
ααΏαα αααααΊααααΌααααα αα±ααααΆαα ααααα αααααααΆααααΆααααααΆαααααααα’αααα
ααΆα / α αΆα αα»αααΉαααΎαα αΆααααααΎαααΎαααΆααα·α αα ααΌααααα‘ααααΎαααΆαααααΆαααΌαα αα½αα ααα½ααααα»αααΆααααα αααααΆαααα
ααΏαα
αααααΊααααΌααααα
αααΆαα»αα ααΆαααααααΆααΎα’αααα
αα
αΆααααα½ααααααααΆα αα·ααα
ααΆαααααααααα·ααααααααΆαααα’ααα»ααααΆ α αΎααααααα’α
ααααααΉαααααα’ααααα
αααα»αααααααααα’ααααα·αααΌαααααΆααα ααΆααααα·ααΆα’αα‘αΆαααΆα
αααΎααααα’αΆα
αα½αα’ααααααα
ααααααΆααααΆααααααΆαααα ααΎαααααΆα
ααΆααΆααααααααααα·ααΆαααΆααααααα α α·αααα±ααααααΆαααα ααΆααΊααΆααΈααααΉααααΆααΎααααΈααααΆαααααααααα’αααΈα’αααΈαααα’αααααααΎ α αΎααα·αααααΉαααααααααα ααΎααααΆαααααα (α¬ααΆαααΌααα αααα»ααα»αααααΌαααααααααΆααααα)α αα·ααΈααα ααααα·αααΎα’αααααααΎαα»ααααα»αααΌα ααα»αααααααααααααΆαααΆααΌαα ααααΉαααααΌα α’αααα’αΆα αααααΎαα±ααΆαααααααα
α’αααααααΌααααααΈαααα αΆαα»ααααα’αααα αΆααααααΎααααααααΆαααΆα αααα»αβααααΈβαααα α’αααβα’αΆα βααΉαβαααβαα·α αα ααΆαβαα½αβαααβααααα·α ααααα·α α αΎαβαααααΆααβααβα α»αβαα βααααΌαβαα»αα ααΆα’αΆα ααΆαααααααααα»αααΆααα½ααααα½αα αααΆααααΆαααα½αα ααα½ααα ααΆααα’ααααααααΆαααα
α’αααααααΌαα αΆαααααααααΌαααααα αα·αααααα ααΎαα»αααααΌαααααα ααΆααΎαα‘αΎαααΆαααα»αα’αα‘α»αααααααααΆααα αααααααααααΌαααΆαααααααααααΆαααααΆαα αα·αααααΆαααα ααααα·αααΆαααΆαααααΆα α¬ααΆαααααΎαααααααααΆααααααααααααααααα·α αα αααααααααααααααααααΆα ααΆααΆαααααααααααααΌαααααα’ααααα ααΎαααααΆααα½α α¬αααααααΆαααα ααΎααααΆαα ααααα·αααΎα’ααααααααΆα’αααΈαααααααααΆααα αααα»αααααΆαααααα’ααα α’αααα’αΆα ααααα α’αααΈαα½ααααααααΆααα
ααΆααα·α αα ααααΌαα αααα»α JavaScript
αα·α αα ααΆαααΆααααααα½αα ααα½ααααα ααααΆααααΆααααααΆααα’ααααα½α α αΎαα α’αααααααΆααααΆαααΆααααααΆααααααα’αααααααΌααααααααΆαα’αααΈαα½αααααααααααΆ α¬α’αα»ααααααΎαα½αααααααααα»αααα JavaScriptα αααα αΎα α₯α‘αΌαααα ααΆαααααααααααααΌααααααααΆααα½αααααααααα α αΎαααΆαα½αααΉαααΆααααααααααα’α·αα’αααΈααααΎαααΆααααα
αααΆααΈαααααΌα
Palindrome ααΊααΆααΆααα αααααα α¬ααααΆαααααα½α’αααααααααααΌαααΆαα’αΆαααΌα ααααΆααΆαααααα»ααα·ααα ααααααΆ αα·ααααα»ααα·ααα αααα»αα α§ααΆα ααα "α’αΆααΆ" ααΊααΆ palindrome ααα»αααα "αα»" αα·α "α α" αα·ααααααα
ααααΆααααΆα
ααΆααααααα±αααααααα½α; α’αααβααααΌαβαααααβα’αα»ααααβαα½αβαααβα’αα»ααααΆαβα±ααβα’αααβαααα‘ααβαα·αβααααα·αβααΎβααααβα’ααααβααΊβααΆβ palindrome α αΎαβαα·αβαα·αβααααα·αβααΎβαα·ααααα αααα»αααααΈααα α’αααααααΌααα·αααΌαααΈα ααααα αα·ααααααΆαααααα»αααα·α
palindrome('racecar') === αα·α
palindrome('ααΆααΆα') === αα·ααα·α
α αΌαααΎααα·ααΆααα·α αα ααΆα
αααα·αααααΆαααα ααΈαααααΊααΆααααα αααΆαααααα ααααα·αααΎααααα’αααα "αααα αααΆα" ααΊααΌα ααααΆααααα·αααΆαααααα»ααα ααΉαα’ααααααΎα αααααΎαααΆαααα½α palindrome α αΎααα»αααΆααα½ααααααα‘αααα·αα ααΎαα·αααΌα αααααααα·ααα·αα
ααΆααααααα α α·ααα
αααααΊααΆααΌαααααααααααΆα palindrome α
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}
ααα αΆαααααΌαααΊααααΌαααααααααα½α’αααααααα»αααααα’αααααααα αΌααα ααΆα’ααααααΌα α αααβααΆααΆαβααΆααΆβααΆβαααααα·ααΈβααΉαβααααααααβαα½α’αααβαααα½αα―αβαα·ααααβααΆβααααΈβα¬βα’αααΈβααααααααβααα
ααα αΆαααΈααΈαααΊααααΌααααα αααΆααααααΆααα ααΆαα·ααα·ααΆαααααΎααα α’αααααααΌααααααααααΆαα ααΆα’αΆαααααααααΎαα·ααΈααΆααααα .split() (String library)α αααααΆααααααΎααααα αααΆαα’αΆαααααααααΎ .reverse() (αααααΆαααα’αΆαα)α ααα αΆαα α»ααααααααΊααααΌααααααααα’αΆαααααα αααΆααα ααΆααααα’αααααααααααΎ .join() (αααααΆαααα’αΆαα)α
α₯α‘αΌααααα’αααΈαααα’αααααααΌαααααΎααΊααααααααααααα’αααα "αααα αααΆα" ααΆαα½αααααα’ααααααΎα αααα‘αααααααααα·αα¬αα·ααα·αα
FizzBuzz
αα·α αα ααΆαααααααα·αααααα»ααα½ααα αααα»αααΆααααααΆαααα
ααααΆααααΆα
α’αααααααΌαααααααα»αααΆααααααααα»ααααααααΈ 1 ααα n αα ααΆαααα»αααΌα ααα n ααΆα ααα½ααααααααα»αααΆαααααΆαααΆαααΆαααααααααααΆαααααααααααΌα ααΆααααααα
- αααααα fizz αααα½αα±ααααΆααα»ααα 3;
- αααααα buzz αααα½αα±αααααααααα»αααΉα 5;
- αααααα fizzbuzz αααα½αα±ααααααααααΆααα»αααΆαα 3 αα·α 5 α
α§ααΆα ααα:
Fizzbuzz(5)
αααααα
// ααααΆα α’α α α¨
// ααααΆα α’α α α¨
// α αααΈα
// ααααΆα α’α α α¨
// ααΆαααααΆααααα’αΎα
α αΌαααΎααα·ααΆααα·α αα ααΆα
ααΏαααααΆαααα ααΈαααααΊααΆαα·ααΈαα½αααΎααααΈααααααααα α»αα»ααααααααΎ JavaScript α ααΆβα’αΆα βααααΌαβααΆαβα’αα»ααααβαααβααααΎβααααα·ααααα·ααβαααΌαα»αβα¬βαααβαααβαα βααα -% αααβα’αα»ααααΆαβα±ααβα’αααβαααα αΆαβα ααα½αβαααβαα βαααβαααβα ααβαααβααΈαα ααααα·αααΎαα αααααΊ 0 ααΆααΆααααααΆαααααΈαα½αααΊααΆαα α»αα»αααααΈααΈαα
12% 5 // 2 --> 12 αα·ααααααΆαα α»αα»ααα 5
12% 3 // 0 -> 12 ααΊααΆαα α»αα»ααα 3
ααΌα αααα ααααα·αααΎα’αααα αα 12 αα»αααΉα 5 α’αααααα½αααΆα 2 ααΆαα½αααΉααα ααααα 2α ααααα·αααΎα’αααα αα 12 αα»αααΉα 3 α’αααααα½αααΆα 4 ααΆαα½αααΉααα ααααα 0α αααα»αααααΈααΈαα½α 12 αα·ααααααΆαααα»ααα 5 αα ααΈααΈα , 12 ααΊααΆαα α»αα»ααα 3 α
ααΆααααααα α α·ααα
αααααβααααΆαβααβααα’βαααα»αβααΉαβααΆβααΌαβααΌα βααΆαβαααααα
const fizzBuzz = num => {
for(let i = 1; i <= num; i++) {
// check if the number is a multiple of 3 and 5
if(i % 3 === 0 && i % 5 === 0) {
console.log('fizzbuzz')
} // check if the number is a multiple of 3
else if(i % 3 === 0) {
console.log('fizz')
} // check if the number is a multiple of 5
else if(i % 5 === 0) {
console.log('buzz')
} else {
console.log(i)
}
}
}
αα»αααΆαα’αα»ααααααΆααααα½ααα·αα·αααα αΆαααΆα ααααααααΎααα ααααΈαααααααΆαααααΆααααααααα αα·ααααααΎααααααααααααααΌαααΆααααα’αααααααΎααααΆααα αα αααα»ααααα αΆ ααΆααΊααΆαααααααααα»αααΆαααα α·ααααα»αααΆααααΎααααΆααααααα ααααΈαααααααΆααα if...elseα α αΆααααααΎαααααααααααααααα (&&) α αΎααααα αααααααααΈααααααα αααΎααα·αα’αΆα ααααΌαααΆαααααΎαα ααΆααααααααΎααααααααααααααααΎαααΆααα’ααα
α’αΆααΆααααΆα
αααααΊααΆααααααααααΆααααΆααααααααΆαα’ααααααΆααα’ααααααΆααααααααααααα αααα»ααααααΌα ααααΆ ααα»αααααα αααα»αααααΆαααααααααααΆα
ααααΆααααΆα
ααΎαβααααΌαβαααααβαα»αααΆαβαααβαα·αα·αααβααΎαβααΆβααΎβααααβααΈαβααΆβα’αΆααΆααααΆαβα¬βα’ααβ α αΎαβααααΈβαα·αβααΆαβαααα αΆβααα ααΆααααα½α’ααααααα»ααααααααααααΌαααΆαααΆαα; α ααααα α¬αααααΆαααααα»αααα·αα·αααααΌαααΆααααααααα·α αΆαααΆααα
anagram('finder', 'αα·ααα') β> αα·α
anagram('ααααΆααα½α', 'ααΆ') β> αα·ααα·α
α αΌαααΎααα·ααΆααα·α αα ααΆα
ααΏαααααΆαααααααααΌααα·α αΆαααΆαα ααΈααα ααΊα’αααααααΌααα·αα·αααααΎαα’ααααααΈαα½αααααα»ααααααΆαααααα αΌαααΈα αα·ααααααααααΆαααα»ααααααΆααααΈαα½ααα
α’αααααααααα β> f: 1 friend β> f: 1
αααα»α: 1 r: 1
n: 1 i: 1
d: 1 α’ααΈ: 1
e: 1 n: 1
r: 1 α: 1
ααΎααααΈαααααΆαα»ααα·ααααααα’αΆααΆααααΆα α’ααααα½αααααααΎαααΎααα ααΆααααααααααΌα ααΆααααα» JavaScript ααΆααΎαα αααααΉααααα»αααααΈαααααΊααΆαα½α’ααααααα’αααααααααααΊααΆα ααα½αααΆααααααααααααααΆαα αααα»ααααααΆαααα αα α»ααααααα
ααΆαααααααααααααααααα
- α’αααααααΌαααααΆααααΆααααΈααα’αααααα·αααααΌαααΆααααααα·α αΆαααΆαα αααααααααααα ααΎαααααΆαααααααααααααααααΆααααΈααα ααΆα’ααααααΌα α¬ααα
- ααΎααααα½α’ααααααααα·ααααααΆαα½α’ααααααΆααα’ααα
ααααΈααΆαααααααααα ααα’αααα»αααΎααααΈααααΎααΆαααΆαα½α
ααααααααααααΆα .
ααΆααααααα α α·ααα
// helper function that builds the
// object to store the data
const buildCharObject = str => {
const charObj = {}
for(let char of str.replace(/[^w]/g).toLowerCase()) {
// if the object has already a key value pair
// equal to the value being looped over,
// increase the value by 1, otherwise add
// the letter being looped over as key and 1 as its value
charObj[char] = charObj[char] + 1 || 1
}
return charObj
}
// main function
const anagram = (strA, strB) => {
// build the object that holds strA data
const aCharObject = buildCharObject(strA)
// build the object that holds strB data
const bCharObject = buildCharObject(strB)
// compare number of keys in the two objects
// (anagrams must have the same number of letters)
if(Object.keys(aCharObject).length !== Object.keys(bCharObject).length) {
return false
}
// if both objects have the same number of keys
// we can be sure that at least both strings
// have the same number of characters
// now we can compare the two objects to see if both
// have the same letters in the same amount
for(let char in aCharObject) {
if(aCharObject[char] !== bCharObject[char]) {
return false
}
}
// if both the above checks succeed,
// you have an anagram: return true
return true
}
ααα
α·ααααα»αααΆααα
ααααααΆαααααΎααααΆαα
['f', 'i', 'n', 'd', 'e', ββ'r']
αα·ααΈαααααΎαααα½αααΆααααααααααααααα·ααααααααα»ααααα·αα αΆαααΆα αααααΎααααα·ααα»αα αααΎαα αααα»αβαααα αΆ α’αααβα’αΆα βααααΎβαα·ααΈβαααβααΆαα½αβααααααααααααα· .length ααΎααααΈβαα·αα·αααβααΎαβααΆβααΎβααααα’ααααβααΆααααΈαβααΆαβα ααα½αβαα½βα’ααααβααΌα ααααΆβαααβα¬βα’αα - αααααΊααΆβααααααβααααΆααβααααβα’αΆααΆααααΆαα
ααααααααααα
αα·α αα ααΆαααααΆαααααα½α ααααααααααΎαα‘αΎααα αααα»αααΆααααααΆαααα
ααααΆααααΆα
α’αααβααααΌαβαααααβα’αα»ααααβαααβααβααααα’ααααβααΆβα’αΆαα»ααααα α αΎαβαααα‘ααβα
ααα½αβααααβαααβααΆαβαααα»αβααααα’ααααα
ααααααΊ "a", "e", "i", "o", "u" α
α§ααΆα ααα:
findVowels('αα½ααααΈ') // β> α’
findVowels('why') // β> α
ααΆααααααα α α·ααα
αααααΆαααααΎαααααΆαααααααα»αα
const findVowels = str => {
let count = 0
const vowels = ['a', 'e', 'i', 'o', 'u']
for(let char of str.toLowerCase()) {
if(vowels.includes(char)) {
count++
}
}
return count
}
ααΆααΆαααΆααααααΆααααΆαααααα»αααΆαααα α·ααααα»αααΆααααΎααΆαααααΎααααΆαααα·ααΈααΆααααα .includes() α ααΆα’αΆα ααααΎααΆααααααΆααααΆααααααα’αααα αα·αα’αΆααα ααΆαα½αααααααΌαααΆαααααΎααΎααααΈαααααααΆααΎα’αΆαααα½αααΆααααααααΆααααΆααα¬α’ααα αα·ααΈβααΆβαααααβαααβαααα‘ααβαα·αβααααα·αβααΎβα’αΆααβααΆαβαααααβαααβααΆαβαααααΆααβαα·αβαα·αβαα·αβααααα·αβααΎβααΆβαα·αβααΆαβα
ααΆααααααααααΆαααααΈααΆαα αααααααα αΆα
const findVowels = str => {
const matched = str.match(/[aeiou]/gi)
return matched ? matches.length : 0
}
ααΆααααΎαα·ααΈααΆααααα .match() αααα’αα»ααααΆαα±ααα’αααα’αα»ααααααΆααααααααααααααααααααα·αααααΆαα ααααα·αααΎααααααααααααΆααΆα’αΆαα»ααααααα·ααΈααΆαααααααααΌαααΆαααααΎααα ααΆααααα»αααααα’αααααααααΆααααααΆαααααααααααααα‘ααααΊααΆα’αΆαααααα½α’αααααααααααΌαααααΆα ααΆααΆααααααΎαααΆαα ααααα·αααΎαα·αααΆαααΆαααααΌααααααααα .match() αααα‘ααααΆ null α
α αααΈααΌααΆαααΈ
αα·α αα ααΆααα»ααΆααααα’αΆα ααααΌαααΆαααααΎααα αααα»αααΆααααααΆααααα ααααα·αααααααα αα½αααααΉαα‘αΎααα·αααΆ ααααΆαα Fibonacci ααΊααΆαααααΈααααα αααααααααααααααΆααααΈαα½αα ααΊααΆααααΌααααααααΈααα»αα ααΌα ααααααααααααααΌαααΎααα ααΌα ααα: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 α
ααααΆααααΆα
α’αααβααααΌαβαααααβα’αα»ααααβαααβαααα‘ααβαααααααααΆβααΈ n αααα»αβααααΆααβααΆααααΆααβαα½α ααα n ααΆβαααβαααβααααΌαβααΆαβαααααΌαβααΆβα’αΆαα»αααααβαα βα’αα»ααααα
fibonacci (3) // β> α’
αα·α αα ααΆααααααΆαααααααααΉαααΆαααΎαααΆααααααα·ααα»αα ααα½ααααααααΆααααααΆαααα αααα»αα’αΆαα»ααααα αααα‘ααααααααα ααΈααΆααααααααα αα·ααΈααααΆααααααααα αΆααααααααΌαα±ααααααΎααααα·ααα»αα ααααα·αααΎα’αααααααΎααΆαα α α‘αΎααα·ααααα½ααα·α ααΆα’αΆα ααααΆααα α·αααα’ααααααααΆααα αα·ααααααα±ααα’αααααΌαα ααα»α αααααααα½αα ααα½αα
ααΆααααααα α α·ααα
const fibonacci = num => {
// store the Fibonacci sequence you're going
// to generate inside an array and
// initialize the array with the first two
// numbers of the sequence
const result = [0, 1]
for(let i = 2; i <= num; i++) {
// push the sum of the two numbers
// preceding the position of i in the result array
// at the end of the result array
const prevNum1 = result[i - 1]
const prevNum2 = result[i - 2]
result.push(prevNum1 + prevNum2)
}
// return the last value in the result array
return result[num]
}
αα αααα»αα’αΆαααααααα αααααΈαααααΌαααΆααα αααα»ααααααΈ ααΈαααααααΆαα»ααΈαα½αααα αααα»αααααΆααααΊααΆααααΌααααααααΈααα»αα αα ααΎαααααΌααα·αααΆααααααΈααααα’αΆα ααααΎααααΈααα½αααΆαααααααααΆαααα ααΌα ααααααααα·ααα»ααα·αα’αΆα αααααΎααα½αααΆαααααααααααααααα·ααΆαααα ααα»ααααααΌα αααααΎαααΉαααααΆαα αααααΈαααααΌααααααααΆ 0 αα·α 1α ααΌα ααααα αΎα α’αααα’αΆα α αΆααααααΎαα’αΆαααααααααααααα
α ααααααΆααα·ααΆαα‘αΎααα·α α’αααΈαααΊααΆαααα αα·ααααα»αααααΆαααΆααααα»αααααααα½αα
const fibonacci = num => {
// if num is either 0 or 1 return num
if(num < 2) {
return num
}
// recursion here
return fibonacci(num - 1) + fibonacci(num - 2)
}
ααΎαααααα α fibonacci() αααααααααΆαααααααΌα αα·αααΌα ααΆαααΆα’αΆαα»αααααα ααΎαααααα ααααααα’αΆαα»ααααααααααΆαα’αα»αααααΊ 0 α¬ 1 α
ααα ααααΈααααα·ααααΆα
ααΆαα αααΎα α’αααααΆααα½ααααααααΉααα·α αα ααΆαααΆααααααα½α α αΎα ααααα·αααΎα’αααααααΌαααΆααααααΆααααααααΆααααΆαααΆααααααααΆααα»α α¬α’αααα’αα·αααααα JavaScript (ααΆαα·αααααααα·αααΎααΆαα ααααα·αααΌα )α ααα»ααααααααα·αααΎα’ααααα·αααΆααα½ααα½αααΆαα αα½αααΆα’αΆα ααΆααααααααααα αααα’ααΆαα αααΆαα αα ααΆαααααααΆααααΆαα’αα·ααααααααΌαα α
Skillbox ααααΆαα
- ααΆαα’αα»αααααααααα·ααααΆααΆαα’ααΈαααΊαα·α
"α’ααααα·ααΆααα·αααααα Python" .- αααααα·ααααΆααΆαα’ααΈαααΊαα·α
"α’αααα’αα·αααααααα»αααααΆα" .- αααααα·ααααΆααΆαααααααααααΆα
"α’αααα’αα·αααααα PHP ααΈ 0 ααα PRO" .
ααααα: www.habr.com