05. Magic exchangeable words от Strings and RegEx - Exercise
От няколко часа мъча всякакви варианти, максимално усложних условията, само и само да не изпусна някакъв случай, но повече от 60 т. не можах да направя. Това е решението ми: http://pastebin.com/TdpmfXdp
Условието е: Write a method that takes as input two strings, and returns Boolean if they are exchangeable or not. Exchangeable are words where the characters in the first string can be replaced to get the second string. Example: "egg" and "add" are exchangeable, but "aabbccbb" and "nnooppzz" are not. (First 'b' corresponds to 'o', but then it also corresponds to 'z'). The two words may not have the same length, if such is the case they are exchangeable only if the longer one doesn't have more types of characters then the shorter one ("Clint" and "Eastwaat" are exchangeable because 'a' and 't' are already mapped as 'l' and 'n', but "Clint" and "Eastwood" aren't exchangeable because 'o' and 'd' are not contained in "Clint").
Тази задача я намерих решена във форума, но за Java. Доколкото разбирам, условието й е било без частта за различна дължина на думите и съответно вариант пак за true, така че не можах да разбера кой случай пропускам. Интересното е, че когато променя кода, за да работи при някои от тези варианти:
Clint Eastwaat / gosho hapka / aabbaa ddeedd
Eastwaat Clint / foo bar / bar foo
се променят и верните и грешните тестове в judge.Този код, който съм качила, е с верни три първи теста. Ако закоментирам някой от if-овете, някои от грешните тестове стават верни и обратно. Т.е. реално имам правилни решения за всеки тест, но не в един код...
Та, моля за работещо 100-процентово решение, аз ще си намеря пропуска на неговата база /ако е на C#, други езици не мога да чета и анализирам.../