Strings and RegEx - Magic exchangeable words
Изглежда в тази задача изпускам някои варианти, но доста се оплетох и ще съм благодарен ако някой предложи опростен вариант.
Джажа ми отсъжда 60т.
Изглежда в тази задача изпускам някои варианти, но доста се оплетох и ще съм благодарен ако някой предложи опростен вариант.
Джажа ми отсъжда 60т.
Здравейте! Условието е леко подвеждащо, но отговорът се крие в него! Там казват, че ако дължината на думите е различна то тогава те са еднакви само ако имат еднакъв брой различни символи! Тоест ако думата abcd има 4 различни символа - a, b , c, d и думата zzffgghh има 4 различни символа - z, f, g, h тези две думи са взаимно заменяеми! Аз като решавах това ми беше като жокер - те думите и да са еднаква дължина ако едната има повече различни символа от другата то тогава няма как да съвпадат!
Ето го моят код за задачата : http://pastebin.com/SWHEJTRP
Надявам се да съм от помощ!
Аз явно съм много тъп, понеже не мога да разбера условието... Ако някой го обясни като за прости хора ще съм благодарен!
Може би малко неясно са дали условието, но след известни мъки го схванах така: ако едната дума е по-къса от другата, то трябва да удължим късата дума, като повторим елементите и, започвайки от първия и по този начин да увеличим първата дума до дължината на втората дума. Това става с цикъл в който елементите се вземат по следния начин - (i % n, където n е дължината на по-дългия стринг). Имаше такава задача от масивите. И след това може да сравняваме елементите на изравнените по дължина масиви. Надявам се това обяснение да ти подскаже клчюча към разбирането на условието на задачата. Струва ми се, че би могло по-добре (по-достъпно) да я изпишат.
Аз избщо не мога да разбера обяснението за "Magic exchangeable words". Преди имаше задачи в които се търсеше магическо число да кажем. И беше обяснено, че то е число коеот ( и тука някъкво условие по което се проверява) в случая нищо не мога да разбера.....
Може да ти подскаже последния пример в задачата, с по-късата и по-дългата дума: " ("Clint" and "Eastwaat" are exchangeable because 'a' and 't' are already mapped as 'l' and 'n' )." От друга страна ако съпоставим това с последния пример от таблицата: " Clint Eastwood - false" - защото 'o' и 'd' не се намират в думата "Clint".
На всяка буква от първия стринг трябва да съответства само една буква от втория. Ако съответстват две букви тогава is not "Exchangeable".
Така го разбирам аз, но не съм сигурен, че изчерпвам всички нюанси, всички възможности.
Не се подценявай. Успех!
Здравей,
Мисля, че нямаш нужда от първата проверка за еднаквост на дължините, т.к. независимо от дължините ще трябва да си добавиш в речника подходящите чарове от думите в речника, до размера на по-късата дума. Мисля, че проверките трябва да са едновременно за firstChar и secondChar и ти липсва проверка например за това, какво се случва ако firstChar го няма, но secondChar го има, както и ако: secondChar липсва, при което има два различни изхода ако firstChar го има или липсва.
Като напълниш масива до размера на по-късата дума си проверяваш дали има разлика в дължините и ако да, проверяваш останалите чарове от по-дългата, дали се съдържат в Key-ако по-дългата дума ти е първата и във Value ако по-дълга е втората дума.
Поздрави
Благодаря много. Много полезен отговор. Както изглежда съм пропуснал съществени неща.