-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HW04 - домашнее задание. #12
base: main
Are you sure you want to change the base?
Conversation
(defn is-palindrome [test-string]) | ||
(defn is-palindrome [test-string] | ||
(let [normal-str (string/upper-case (string/replace test-string #"[^a-zA-Z0-9]" "")) | ||
invert-str (string/reverse normal-str)] (= normal-str invert-str))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"тело" в let лучше переносить на новую строчку.
normal-string (-> test-string | ||
(string/replace #"[\s\W]" "") | ||
string/lower-case)] | ||
(= (set alphabet) (set normal-string)))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Раз уж с множествами работаете, то можно было бы проверить, что пересечение (set alphabet)
и (set test-string)
равно (set alphabet)
- это и есть признак того, что все буквы были использованы :) В этом случае никакие дополнительные действия над входной строкой не нужны.
nil) | ||
(let [letters-set (set (mapv str letters)) | ||
word-set (set (mapv str word))] | ||
(= (clojure.set/intersection letters-set word-set) word-set))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А вот здесь использование множеств не сработает. Потому что, приводя строку к множеству, вы теряете информацию о количестве повторов букв. А чтобы составить word из letters может потребовать более одного экземпляра той или иной буквы.
Вы точно запускали тесты? Среди тестовых примеров точно есть такой, в которому буквы в собираемом слове повторяются.
В будущем, пожалуйста, делайте по одному pull request на домашнее задание. Сейчас PR называется "HW04", но содержит код к другим урокам. |
Доброго времени суток - сумел написать scramblies , а как делать задание magic_square - не знаю, не могу составить алгоритм даже на императивном языке, не то что на clojure. Пытался смотреть ролики на ютьюбе чтоб хоть понять как действовать - не помогло, как выполнить такие-же действия программно пока не могу себе представить ( а хотелось бы ).