[Homework] Java Collections март 2016
Здравейте колеги качвам моето домашно тук цък .Приемам всякакви съвети за оптимизация и критики.Извинявам се че не мога да ви отговарям на коментарите които ми пишете но да работиш и учиш е много кофти.
Здравейте колеги качвам моето домашно тук цък .Приемам всякакви съвети за оптимизация и критики.Извинявам се че не мога да ви отговарям на коментарите които ми пишете но да работиш и учиш е много кофти.
Здравей,
Видях ти решението на 2-ра задача, разбрах ти идеята, моята беше подобна, но все гърмеше.Имам само един въпрос.Защо си сложил continue след първия if , защото без него програмата ми гърми,какво точно прави?
Здравейте, колеги!
Моето решение на 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. Според вас правилно ли е?
Доста добра идея, моето решение е подобно, само че използвам - "\\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); } }
Това също работи добре - видях го в нета:
.... = input.nextLine().split("\\W+");
Да, но ако използваш "\\W+", в резултата ще се включат и всички цифри и "_", а в задачата пише само букви.
На 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;
м да така е колежке,права си.
Здравейте, колеги!
Ето я и моята версия на домашното за колекции в Java. Бих оценил, ако имате някакви коментари.
Здравейте, колеги!
Ето и моите решения: https://github.com/NikolayShaliavski/HomeworksJavaMar2016/tree/master/04.HomeworkJavaCollections/04.Homework
Implement Recursive Binary Search
Още на пръв поглед можем да видим, че output на четвъртия input е грешен.
Тук е моята логика - http://pastebin.com/YwdjKSGr
Вие как мислите?
Донякъде си прав - в самото условие никъде не се казва че трябва да се посочи най-малкия индекс на който даденото се намира, а само да се посочи на коя позици се намира, независимо дали числото се среща повече от 1 път.
Здравей office_kanev тъкмо разгледах решението на 2ра задача. Установих, че не работи коректно. Може по чиста случайност да дава верни отговори на примерните тестове.
Аз пробвах с вход: hi yes yes bye yes bye hi
Output:
hi
yes yes
bye
yes
bye
hi
Грешката идва от това, че проверяваш само дали 2 съседни елемента са еднакви. Надявам се, че съм бил полезен.
С този вход, това което си получил е очакваният изход. Входът който даваш има само 1 поредица от еднакви стрингове
hi yes yes bye yes bye hi. Самата идея е да се провери дали настоящият елемент е еднакъв с предния, ако е еднакъв го отпечатва и добавя празно място, ако не е еднакъв слага нов ред и тогава го отпечатва .
continue служи за преминаване към следващата итерация в цикъла.
Кодът под continue не се изпълнява за текущия елемент (ако условието е изпълнено), а се преминава директно към следващия. В примера ще се отпечатат само 1, 3, 4
Да,като дебъгнах го разбрах, много удобно не го знаех.Благодаря ти иначе! :)
Може и без него:
Но в някои случаи е незаменим оператора (continue).