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
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
Vankata83 avatar Vankata83 72 Точки

За всеки цикъл увеличавам countLen, което в началото е 0.

0
Zmyrt avatar Zmyrt 3 Точки

Ванка много благодаря пак за помощта...не е това, предвидил съм ги и тези проверки.Проблемът беше, че там където смяташ процентите трябва да са ти флоут а не интиджър.Явно на тест 4 разликата в процентите е след десетичната точка. Поздрави и приятни бири :-) 

0
Vankata83 avatar Vankata83 72 Точки

Радвам се, че се справи.

Приятна и на теб.

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