Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

smu4k avatar smu4k 34 Точки

Homework - 09. Index of Letters - Array Exercises

  Здравейте,
може ли някаква идея да подадете за задачата от масиви "Index of Letters", тъй като нещо не ми е доизяснено в главата какво трябва да правя. Трябва да направя един отделен масив, с всичките букви  като те да бъдат елементи на него и да пусна фор цикъл който да обхожда този масив и да търси съвпадения и да казва, кой е индекса на елемента или е нещо друго.. тази задача ми изглежда лесно, така, че се извинявам :D за проявеното невежество!

Тагове:
1
Programming Fundamentals
Simeon.R avatar Simeon.R 198 Точки

Идеята е, че в английската азбука има 26 букви и задачата иска да им дадеш номер, като започнеш от a = 0; b = 1 ... z = 25. Входът ще бъде само малки букви. 

Вариант е да обходиш всяка буква и да кажеш {буква} -> {номер}. По-трудната част е да се сетиш как да намериш номера лесно. Аз използвах ASCII таблица и свойството на char - да е едновременно символ и номер/число т.е. може да изваждаш/прибавяш числа към символи и да получиш символ/номер. Например буквата "a" е номер 97 в ASCII таблицата. Пробвай с тази подсказка :)

2
slav.petkov avatar slav.petkov 26 Точки

Здравейте, колеги,

като гледам вашите решения и на мен ми хрумна начин.

Получаваме азбуката във възходящ ред, тоест - сортирана. Има един метод за търсене, наречен Binary Search .

Накратко същността му се състои в следното:

  1. Имаме сортирана колекция от елементи и елемент, който търсим в нея.
  2. Имаме лява и дясна позиция, които ни формират затворен интервал за търсене, нека ги наречем left и right
  3. Изчисляваме индекса на средната позиция между left и right - middle = (left + right) / 2;
  4. Проверяваме елементът на индекс middle.
    - Ако е равен на елемента, който търсим, то тогава връщаме middle
    - Ако е по-малък от търсения елемент, то тогава  присвояваме на left стойност middle + 1 и изпълняваме стъпка 4
    - Ако е по-голям от търсения елемент, то тогава присвояваме на right стойност middle - 1 и изпълняваме стъпка 4.
  5. Ако не намерим този елемент, връщаме -1

Така в случая за всяка буква от инпута можем да намерим съответната ѝ позиция в масива.

Ето и примерно решение:

http://pastebin.com/akyHFCKS

Поздрави!

0
30/05/2016 18:52:04
Ddar1242 avatar Ddar1242 2 Точки

Привет,

Хареса ми решението ти. От него взех само една идея и мога да предложа крайно простичко решение на задачата :)

 

https://pastebin.com/4if0k7rj

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