From 841331836a7bee4018391d6aae48229485191011 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Fri, 3 Nov 2023 21:28:15 +0300 Subject: [PATCH 1/8] HW1 version 0 --- otus-01/src/otus/homework.clj | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/otus-01/src/otus/homework.clj b/otus-01/src/otus/homework.clj index 82c8e9d..56d1af9 100644 --- a/otus-01/src/otus/homework.clj +++ b/otus-01/src/otus/homework.clj @@ -1,5 +1,16 @@ (ns otus.homework) -(defn solution "Add your solution as fuction body here" []) +(defn solution "Add your solution as fuction body here" [] +(let[ + a (+ 6 (/ 4 5)) + b (- 3 a) + c (- 2 b) + d (+ 5 (+ 4 c)) + e (- 2 7) + f (- 6 2) + g (* e f) + h (* 3 g) + r (/ d h) + ] (double r))) From 23e0285ecbf01a0aa75519e308327732ab99db9b Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Sun, 12 Nov 2023 11:20:27 +0300 Subject: [PATCH 2/8] HW1 version 1 - formatting done --- otus-01/src/otus/homework.clj | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/otus-01/src/otus/homework.clj b/otus-01/src/otus/homework.clj index 56d1af9..b496ead 100644 --- a/otus-01/src/otus/homework.clj +++ b/otus-01/src/otus/homework.clj @@ -1,16 +1,5 @@ (ns otus.homework) - (defn solution "Add your solution as fuction body here" [] -(let[ - a (+ 6 (/ 4 5)) - b (- 3 a) - c (- 2 b) - d (+ 5 (+ 4 c)) - e (- 2 7) - f (- 6 2) - g (* e f) - h (* 3 g) - r (/ d h) - ] (double r))) - + (double (/ (+ 5 (+ 4 (- 2 (- 3 (+ 6 (/ 4 5)))))) + (* 3 (* (- 2 7) (- 6 2)))))) From c83e36d5645d026b2fea1e7be24200c0de00146e Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Sun, 12 Nov 2023 14:12:31 +0300 Subject: [PATCH 3/8] HW2 - fizzbuzz done --- otus-02/test/otus_02/homework/fizzbuzz.clj | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/otus-02/test/otus_02/homework/fizzbuzz.clj b/otus-02/test/otus_02/homework/fizzbuzz.clj index f11a446..d4c4f8f 100644 --- a/otus-02/test/otus_02/homework/fizzbuzz.clj +++ b/otus-02/test/otus_02/homework/fizzbuzz.clj @@ -2,14 +2,13 @@ (:require [clojure.test :refer :all])) - (defn fizz-buzz [n] - "Создайте программу, которая выводит числа от 1 до n. - - Если число делится на 3, выведите 'Fizz'; - - если число делится на 5, выведите 'Buzz'; - - если число делится и на 3 и на 5, выведите 'FizzBuzz'." - "implement me") - + (map + #(cond + (true? (and (= 0 (mod % 3)) (= 0 (mod % 5)))) "FizzBuzz" + (= 0 (mod % 3)) "Fizz" + (= 0 (mod % 5)) "Buzz" + :else %) (range 1 (+ n 1) 1))) (deftest fizz-buzz-test (is (= (fizz-buzz 10) From 05f42daf9b9b6351ccf48c3c3203e639f9f60358 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Mon, 13 Nov 2023 22:22:42 +0300 Subject: [PATCH 4/8] HW2 - palindrome done --- otus-02/src/otus_02/homework/palindrome.clj | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/otus-02/src/otus_02/homework/palindrome.clj b/otus-02/src/otus_02/homework/palindrome.clj index 591f98e..105aa48 100644 --- a/otus-02/src/otus_02/homework/palindrome.clj +++ b/otus-02/src/otus_02/homework/palindrome.clj @@ -1,6 +1,7 @@ (ns otus-02.homework.palindrome (:require [clojure.string :as string])) - -(defn is-palindrome [test-string]) - +(defn is-palindrome [test-string] + (let [normal-str (string/trim (string/upper-case (string/replace test-string #"\W" ""))) + invert-str (string/reverse (string/trim (string/upper-case (string/replace test-string #"\W" ""))))] (= normal-str invert-str))) + From e1792056c44ef30748eef00de1dbf2ff3795f233 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Wed, 15 Nov 2023 22:55:49 +0300 Subject: [PATCH 5/8] HW2 pangram done --- otus-02/src/otus_02/homework/pangram.clj | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/otus-02/src/otus_02/homework/pangram.clj b/otus-02/src/otus_02/homework/pangram.clj index dc5d34c..8868afd 100644 --- a/otus-02/src/otus_02/homework/pangram.clj +++ b/otus-02/src/otus_02/homework/pangram.clj @@ -1,6 +1,12 @@ (ns otus-02.homework.pangram (:require [clojure.string :as string])) - -(defn is-pangram [test-string]) - +(defn is-pangram [test-string] + (let [alphabet "abcdefghijklmnopqrstuvwxyz" + alph-vec (map #(str %) (vec alphabet)) + normal-string1 (string/lower-case test-string) + normal-string (map #(str %) + (vec (filter #(> (.indexOf alphabet (str %1)) -1) + (vec normal-string1)))) + chr-in-alpha-list (map #(.indexOf normal-string %) alph-vec)] + (= (count (filter #(= % -1) chr-in-alpha-list)) 0))) From fb74e00c2124a10d8ee0df11c123f9b335551a79 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Sun, 19 Nov 2023 19:56:17 +0300 Subject: [PATCH 6/8] HW2-01 - palindrome corrected --- otus-02/src/otus_02/homework/palindrome.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/otus-02/src/otus_02/homework/palindrome.clj b/otus-02/src/otus_02/homework/palindrome.clj index 105aa48..75f7b31 100644 --- a/otus-02/src/otus_02/homework/palindrome.clj +++ b/otus-02/src/otus_02/homework/palindrome.clj @@ -2,6 +2,6 @@ (:require [clojure.string :as string])) (defn is-palindrome [test-string] - (let [normal-str (string/trim (string/upper-case (string/replace test-string #"\W" ""))) - invert-str (string/reverse (string/trim (string/upper-case (string/replace test-string #"\W" ""))))] (= normal-str invert-str))) - + (let [normal-str (string/upper-case (string/replace test-string #"[^a-zA-Z0-9]" "")) + invert-str (string/reverse normal-str)] (= normal-str invert-str))) + From b03f822659ffbce7c50e984783affb884612ba13 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Sun, 19 Nov 2023 21:19:01 +0300 Subject: [PATCH 7/8] HW2-01 pangram corrected --- otus-02/src/otus_02/homework/pangram.clj | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/otus-02/src/otus_02/homework/pangram.clj b/otus-02/src/otus_02/homework/pangram.clj index 8868afd..4d32fb8 100644 --- a/otus-02/src/otus_02/homework/pangram.clj +++ b/otus-02/src/otus_02/homework/pangram.clj @@ -1,12 +1,19 @@ (ns otus-02.homework.pangram (:require [clojure.string :as string])) +;;(defn is-pangram [test-string] +;; (let [alphabet "abcdefghijklmnopqrstuvwxyz" +;; alph-vec (map str (vec alphabet)) +;; normal-string1 (string/lower-case test-string) +;; normal-string (map str +;; (filter #(> (.indexOf alphabet (str %1)) -1) +;; normal-string1)) +;; chr-in-alpha-list (map #(.indexOf normal-string %) alph-vec)] +;; (= (count (filter #(= % -1) chr-in-alpha-list)) 0))) + (defn is-pangram [test-string] (let [alphabet "abcdefghijklmnopqrstuvwxyz" - alph-vec (map #(str %) (vec alphabet)) - normal-string1 (string/lower-case test-string) - normal-string (map #(str %) - (vec (filter #(> (.indexOf alphabet (str %1)) -1) - (vec normal-string1)))) - chr-in-alpha-list (map #(.indexOf normal-string %) alph-vec)] - (= (count (filter #(= % -1) chr-in-alpha-list)) 0))) + normal-string (-> test-string + (string/replace #"[\s\W]" "") + string/lower-case)] + (= (set alphabet) (set normal-string)))) From 7a2f434453736fde974c91ea1943f954c1e924e1 Mon Sep 17 00:00:00 2001 From: medvedevvu Date: Wed, 22 Nov 2023 22:19:55 +0300 Subject: [PATCH 8/8] HW04 scramblies.clj done --- otus-04/src/otus_04/homework/scramblies.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/otus-04/src/otus_04/homework/scramblies.clj b/otus-04/src/otus_04/homework/scramblies.clj index f76d335..9719d76 100644 --- a/otus-04/src/otus_04/homework/scramblies.clj +++ b/otus-04/src/otus_04/homework/scramblies.clj @@ -7,4 +7,6 @@ "Функция возвращает true, если из букв в строке letters можно составить слово word." [letters word] - nil) + (let [letters-set (set (mapv str letters)) + word-set (set (mapv str word))] + (= (clojure.set/intersection letters-set word-set) word-set)))