Уважаемые авторы курса. Откорректируйте проверку заданий.
Первая задача:
package com.javarush.task.task07.task0713;
...
for (int x : list) {
if ((x % 3 == 0) ||(x % 2 == 0)) {
if (x % 3 == 0)
list3.add(x);
if (x % 2 == 0)
list2.add(x);
} else {
list0.add(x);
}
}
...
3 и 4 пункт не проходит тестирование, в idea ответ аналогичен вашему варианту
Как-то совсем не очень и это уже не в первый раз
По первой задаче только одно решение? Если просто разбить на блоки:
for (int i = 0; i < fullList.size(); i++) {
Integer value = fullList.get(i);
if (value % 3 == 0) {
onThree.add(value);
}
}
программа не принимает.... Хотя в идее вроде всё ровненько. Проблема в проверяющей штуке или я где-то не вижу ошибку в своём коде?
Проверка символа: str.contains("л")
А по ArrayList удобно идти с конца - тогда удаление текущего элемента или добавление (i+1)'ой копии на цикл не влияет.
Уважаемые авторы курса. Откорректируйте проверку заданий. В последней задаче у меня правильное решение, однако проверку не проходит, т.к. логика решения, видимо несколько отличается от "эталонной". Пришлось запустить с листингом из подсказки, чтобы закрыть задачу.
Текст моего решения.
public class Solution {
public static void main(String[] args) throws IOException {
//напишите тут ваш код
ArrayList<String> list = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
list.add(sc.next());
}
for (int i = 1; i < 10; i++) {
if (!(list.get(i).length() >= list.get(i-1).length())) {
System.out.println(i);
break;
}
}
}
}
ArrayList динамически растягивает размер своего массива при добавлении и соответственно динамически, сразу же (!) его сокращает при удалении своего элемента из. Сокращенную форму цикла (х : х) при манипуляциях с отдельными элементами использовать невозможно. Поэтому до цикла-перебора создаем новый отдельный массив-лист и добавляем или не добавляем в него элементы. И соответственно его же потом и возвращаем. Так же используем операторы перехода в Java.
Проблема:
Когда с клавиатуры ввожу в список строки,
а потом вывожу список на консоль, то получается:
[стока 1, ,строка 2, ,строка 3]
и всё! А должно быть 5 строк.
Получается - каждое нажатие Enter дает еще пустую строку,
которая прячется между моими. И не придерешься!
5 строк,
как и планировалось! Тока не те...
Задачки успешно проходят javarush тестирование!😃👍
А если отдельно запускаю, то вот такая хрень😐
Какие будут мнения?
(заранее спасибо!)
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(reader.readLine());
}
System.out.println(list);
}
}
Когда ввожу третью строку и жму Enter, программа выводит:
[стока 1, ,строка 2, ,строка 3]
и завершается
На самом деле - прежде чем решать подобные задачи нужно пройти полный курс java collections framework где нибудь на стороннем сайте онлайн - университета. Я например, сначала прочитал и законспектировал теорию с Алишева, включая платный курс по углубленым знаниям java, затем частично проштудировал книгу Шилдта, пообщался с человеком, который в теме, и лишь потом пришел решать сюда задачи, чтобы понять - что я пропустил в теоретической подготовке. И такие дыры вылезают...
Глубоко копнул) Я пока посмотрел канал GMByte (он довольно старенький, но для начала и общего понимания пойдёт). Алишева ещё не пересмотрел, рандомно высматриваю по темам, но тоже хочу всё по порядку пройти, чтобы проще было здесь задачи решать и теорию воспринимать по множествам ссылок от проЦессора😁
С моей "базой" задачи именно этого уровня пока идут трудновато.
Решил всё без collections. Всё решается методами Strings и ArrayList, но погуглить и почитать пришлось. Мне например тяжелее по памяти просто код печатать, грамматику языка ещё не выучил(((
Закон Паре́то (принцип Парето, принцип 80/20) — эмпирическое правило, названное в честь экономиста и социолога Вильфредо Парето, в наиболее общем виде формулируется как «20 % усилий дают 80 % результата, а остальные 80 % усилий — лишь 20 % результата».
На практике жизни, как ни странно, это правило часто подтверждает свою состоятельность.
Тут очень плохие лекции за исключением лекций Нудлса. Ничего не понятно. Решаю задачи часто не знаю всего необходимого "арсенала". Почти всё приходится читать на стороне. Мало примеров с разбором вариантов. Полгода по 3-4 часа в день дошел до 13 уровня.
Просто надо понимать логику создателей курса. Я тоже до конца нее не понимал, пока не ознакомился с одной из теорий обучения, которой, видимо придерживаются авторы.
Согласно этой теории, надо давать обучающимся задание "на попробовать", с условием, что уровня их знания не достаточно для ее решения. Чтобы дать им ознакомиться с постановкой задачи и подогреть интерес к изучению "недостающего" материала. После этого дать недостающий материал, а затем закрепить этот материал на дополнительной практике.
Другое дело, что тут не объясняется нигде этот принцип. Но судя по тому, как тут раздается материя, решения задач на уровне easy как раз должно хватать для прохождения курса. Видимо подразумевается, что к решению более сложных задач можно вернуться потом, после углубленной подачи материала. Но это в том случае, если с первого раза знаний не хватило.
Мне пока хватает, хотя приходится немного почитать "на стороне".
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ