Петото предизвикателство вече е факт. Срокът е до петък - 12 на обяд.
Тук е мястото да коментирате предизвикателството.
Петото предизвикателство вече е факт. Срокът е до петък - 12 на обяд.
Тук е мястото да коментирате предизвикателството.
World анаграма ли е на world ?
В условието на предизвикателството си пише, че
Никоя дума не е анаграма на себе си.
Сравнението на думи става без значение от това дали буквите са малки или големи, така че както @Габи отбеляза, думата "World" не е анаграма на "world". : )
Как да се разбира следният ред от условието:
Резултатът от извикването на метода трябва да е енумератор, а ако е подаден блок - да yield-ва стойностите.
При подаден блок се yield
-ват отделните анаграми или цялата поредица от тях? Иначе казано, какво се очаква да изведе
"world".anagrams(["wlord", "wlodr"]) { |anagram| puts anagram }
Според мен трябва да изведе:
wlord
wlodr
Тоест отделните анаграми.
Да, yield-ват се една по една. :)
Имаме следния случай
"Starer".anagrams(["cashregister", "arRest", "stance", "Arrest"]).to_a
.
Има ли значение дали ще се изведе по един от долните три начина?
["arRest"]
["Arrest"]
["arrest"]
Yield-ват се string-овете от списъка, които са анаграми на "Starer" във формата, в който присъстват в списъка.
В случая резултатът след изпълнение е ["arRest", "Arrest"]
@Александър, @Георги - благодаря за разяснението.
@Дамян - според мен твоят пример би трябвало да върне ["arRest", "Arrest"]
, защото и двете са анаграми на Starer. Няма изискване изходните думи да са анаграми помежду си.
@Мартина, думите, които получаваме в резултат на извикване на String#anagrams
са анаграми по между си, тъй като това свойство е транзитивно.
Ако X.anagrams([A, B, C, D]).to_a
дава като резултат [A, C]
, то A
е анаграма на C
и обратното.
@Станислав - обърках се.
Никоя дума не е анаграма на себе си, независимо от малки/големи букви.
Резултатът от "Starer".anagrams(["cashregister", "arRest", "stance", "Arrest"]).to_a
e ["arRest", "Arrest"]
.
Ако X.anagrams([A, B, C, D]).to_a дава като резултат [A, C], то A е анаграма на C и обратното.
Как "arRest" и "Arrest" са анагарами помежду си, при положение, че имаме първото условие? Пак ли нещо пропускам?
Свойството не е транзитивно. ab -> ba
и ba -> ab
, но ab -/> ab
... (ако мислим ->
като "е анаграма на").
Доколкото разбирам @Мартина е права, че няма изискване изходните думи да са анаграми помежду си, а @Станислав просто имаше предвид, че (от неговия пример) А също е анаграма на С, стига да не са една и съща дума. :)
Така е, това чупи транзитивността. Прави сте. Думите "arRest" и "Arrest" не са анаграми.
Само латински букви ли ще съдържат думите, подадени на метода, или стринга, на който се извиква anagrams?
Само латински.
Трябва да сте влезли в системата, за да може да отговаряте на теми.