Професионална програма
Loading...
Rextor92 avatar Rextor92 149 Точки

Направили сте си задачата значително по-трудна, от колкото всъщност е. Не е необходимо да се използва речник! Практически условието се свежда до следното: всеки символ от първата дума да може да бъде мапнат на символ от втората. Решението е на 4 реда:
 

      string[] inputArray = Console.ReadLine().Trim().Split();
      HashSet<char> firstWord = new HashSet<char>(inputArray[0]);
      HashSet<char> secondWord = new HashSet<char>(inputArray[1]);
      Console.WriteLine( (firstWord.Count == secondWord.Count) ? "true" : "false" );

 

5
aruseva avatar aruseva 29 Точки

Ако двата стринга са ти  : acbc и deef  -> в твоя случай вади true, не трябва ли да е false?

2
kaloyannikov avatar kaloyannikov 531 Точки

false трябва да е , c се мапва с e и после b няма как да се мапне с e , и c вече е мапното с  е няма как да се мапне с f, идеята му е готина ,но за такива гранични случаи не работи .

0
aruseva avatar aruseva 29 Точки

Затова ни е нужен речник ;)

1
Rextor92 avatar Rextor92 149 Точки

Хм, става дума за тълкование на условието. Аз лично не бях го приел като задължение да спазвам и подредбата на вече мапнатите символи.. Няма тест, който да гърми; съмнявам се от софтуни да са пропуснали тази възможност в тестовете?

0
kaloyannikov avatar kaloyannikov 531 Точки

точно при тоя пример acbc и deef сетовете ще са [acb] и [def] равни са по дължина и според твоето решение трябва да изкара true ,  но по условието на задачата не. Просто не е измислен такъв тест 

0
aruseva avatar aruseva 29 Точки

И ние можем да измисляме засукани тестове :) :) :) 

0
prohause avatar prohause 356 Точки

За пореден път колегите от софтуни показват че не знаят как да пишат условията на задачите. Написах програмата с Dictionary и ми гърми точно на 1 и 2 тест. Обаче с решението на колегата ми дава 100 точки което показва, че се иска само уникалните символи в двата stringa да са равни.

Ето го и оригиналното ми решение: http://pastebin.com/8JgHLhC2

0
13/06/2016 16:46:48
awesomeo avatar awesomeo 20 Точки

Проблемът с първи и втори тест са случаите, в които се опитваме да мапнем 2 различни char-a към една и съща стойност - ab aa. Това по условие трябва да е false, но ако имаме просто решение с дикшънари, което проверява дали в него има ключ и ако няма добавя стойност, резулататът ще е true. Нужна е и проверка дали дикшънарито вече не съдържа стойността. За да добавяме нови неща в него трябва да няма нито ключа, нито стойността, с които работим.

0