Loading...
kmilewa avatar kmilewa 2 Точки

Task 2 Similarity

Здравейте!

Аз май нещо не разбирам по условието на задача.. Моля за съдействие.

Във файла е обяснено, че едно от изискванията е да има минимум процент на повтаряемост P(a minimum percentage – P – of their letters match (a letter in W1 matches a letter in W2 if the two letters are the same symbol and are at the same position in both words))

Примерът, който са дали дават обяснение, че в дадените думи минимума е 40, което е ОК, обаче ако е 43 вече не е ок? Нали минимума е 40.. Би трябвало 43 също да е ОК?

(For example, if W1 = “kittens” and W2 = “kidding”, the matching letters would be k, i, and n. That gives us 3 matching letters out of 7 letters, which is about 42.8% of the letters. If P = 40, then we would say the words match. If P = 43, we would say the words don’t match.)

Може ли малко разяснения, ако някой ги вижда нещата по друг начин :)

Благодаря!

Тагове:
0
C++ Fundamentals
mato2010 avatar mato2010 2 Точки

Здравей,

С P са ти обозначени минималните проценти при които думите ще "съвпадат". Съответно ако двете думи имат 42.8 % подобност при изискването P = 40 думите съвпадат понеже 42.8 > 40, но ако P беше 43, думите нямаше да съвпадат понеже 42.8 < 43.

Късмет със задачата!

 

0
Zmyrt avatar Zmyrt 3 Точки

Здравейте! Някой да се сеща за някакви конкретни уловки в задачата ?

Повече от 90/100 не мога да изстискам а времето напредва...

0
Vankata83 avatar Vankata83 72 Точки

Виж дали когато смятащ процента дали включваш и самия зададен процент

т.е. нещо от сорта countSimilarLetters * 100.0 / KEYLEN >= percent

където KEYLEN e дължината на зададената дума.

0
Zmyrt avatar Zmyrt 3 Точки

Благодаря за отговора, да смятам го и него. Другаде е проблемът за съжаление...

на Тест 4 гърми програмата . Някакви други идеи ? :)

 

0
Vankata83 avatar Vankata83 72 Точки

Аз правя една проверка дали дължината на дадената дума е равна с тази на текущата, както и дали първите букви съвпадат.

Това ми е в един if. Ако проверката мине веднага сетвам countSimilarLetters = 1.

Просто само това се сещам за момента.

От друга страна ако грешката е time limit - нещо judge напоследък ги дава тези грешки.

И още нещо се сещам сега - виж дали правилно правиш разделянето на думите. Имаше някаква заигравка ако накрая имаш специфичен символ.

 

LENGTH = input.size();

if (input[i] == '.' ||
            input[i] == ',' ||
            input[i] == ';' ||
            input[i] == '!' ||
            input[i] == '?' ||
            input[i] == ' ') {
                std::string currentWord = input.substr(start, countLen - 1);
                words.push_back(currentWord);
                start = i + 1;
                countLen = 0;
            } else if (i == LENGTH - 1) {
                std::string currentWord = input.substr(start, countLen);
                words.push_back(currentWord);
                start = i + 1;
                countLen = 0;
            }

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.