Loading...
office_kanev avatar office_kanev 6 Точки

[Homework] Java Collections март 2016

Здравейте колеги качвам моето домашно тук  цък .Приемам всякакви съвети за оптимизация и критики.Извинявам се че не мога да ви отговарям на коментарите които ми пишете но да работиш и учиш е много кофти.

3
Java Advanced 28/03/2016 13:40:26
Pafo37 avatar Pafo37 21 Точки

Здравей,

Видях ти решението на 2-ра задача, разбрах ти идеята, моята беше подобна, но все гърмеше.Имам само един въпрос.Защо си сложил continue след първия if , защото без него програмата ми гърми,какво точно прави?

0
MapuH avatar MapuH 35 Точки

continue служи за преминаване към следващата итерация в цикъла.

int[] numbers = {1, 2, 3, 4};
for (int n : numbers) {
    if (n == 2) {
        continue;
    }
    System.out.println(n);
}

Кодът под continue не се изпълнява за текущия елемент (ако условието е изпълнено), а се преминава директно към следващия. В примера ще се отпечатат само 1, 3, 4

2
28/03/2016 22:36:32
Pafo37 avatar Pafo37 21 Точки

Да,като дебъгнах го разбрах, много удобно не го знаех.Благодаря ти иначе! :)

0
g.stoyanov avatar g.stoyanov 776 Точки

Може и без него:

int[] numbers = {1, 2, 3, 4};
for (int n : numbers) {
    if (n != 2) {
        System.out.println(n);
    }
}

Но в някои случаи е незаменим оператора (continue).

3
IvelinaVasileva avatar IvelinaVasileva 20 Точки

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

Моето решение на 5-та задача е доста "мързеливо" - реших просто да сплитна текста по regex, който изключва единствено letter characters, и след това просто да принтирам броя части, на които се е сплитнал. 

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] words = scanner.nextLine().split("[^A-Za-z]+");

        System.out.println(words.length);
    }

С примерите работи. Смятам, че с всяко едно изречение би работило, тъй като изключва, както се иска в условието, non-letter characters. Според вас правилно ли е? 

3
Pete1 avatar Pete1 56 Точки

Доста добра идея, моето решение е подобно, само че използвам  - "\\P{Alpha}+" (split-ва по non-letter characters)

public class Problem5CountAllWords {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        String [] input = console.nextLine().split("\\P{Alpha}+");

        System.out.println(input.length);
    }
}
0
vpl2001 avatar vpl2001 54 Точки

Това също работи добре - видях го в нета:

.... = input.nextLine().split("\\W+");

 

1
IvelinaVasileva avatar IvelinaVasileva 20 Точки

Да, но ако използваш "\\W+", в резултата ще се включат и всички цифри и "_", а в задачата пише само букви.

3
mbeleva88 avatar mbeleva88 69 Точки

На 3-та задача - Largest Sequence of Equal Strings:

for (int i = 0; i < arr.length; i++) {
            if (i == 0) {
                currLength++;                
                continue;
            }
            prev = arr[i - 1];

това ти е излишна операция според мен.

Може да дефинираш currentLength = 1, вместо 0

и цикъла да ти почва от i = 1;

1
office_kanev avatar office_kanev 6 Точки

м да така е колежке,права си.

0
baxlash avatar baxlash 31 Точки

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

Ето я и моята версия на домашното за колекции в Java. Бих оценил, ако имате някакви коментари.

цък

0
a_angelov_angelov avatar a_angelov_angelov 2 Точки

Implement Recursive Binary Search

Още на пръв поглед можем да видим, че output на четвъртия input е грешен.

Тук е моята логика - http://pastebin.com/YwdjKSGr

Вие как мислите?

0
IskrenPenev avatar IskrenPenev 177 Точки

Донякъде си прав - в самото условие никъде не се казва че трябва да се посочи най-малкия индекс на който даденото се намира, а само да се посочи на коя позици се намира, независимо дали числото се среща повече от 1 път.

0
EyubDjelil avatar EyubDjelil 9 Точки

Здравей office_kanev тъкмо разгледах решението на 2ра задача. Установих, че не работи коректно. Може по чиста случайност да дава верни отговори на примерните тестове.

Аз пробвах с вход:  hi yes yes bye yes bye hi

Output: 

hi 
yes yes 
bye 
yes 
bye 
h

Грешката идва от това, че проверяваш само дали 2 съседни елемента са еднакви. Надявам се, че съм бил полезен.

0
IskrenPenev avatar IskrenPenev 177 Точки

С този вход, това което си получил е очакваният изход.  Входът който даваш има само 1 поредица от еднакви стрингове 

hi yes yes bye yes bye hi. Самата идея е да се провери дали настоящият елемент е еднакъв с предния, ако е еднакъв го отпечатва и добавя празно място, ако не е еднакъв слага нов ред и тогава го отпечатва .

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