package com.javarush.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые-самые
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String>list = new ArrayList<String>();
for (int i = 0; i < 10; i++){
String s = reader.readLine();
list.add(s);
}
int maxL = list.get(0).length();
int minL = list.get(0).length();
for (int a = 0; a < list.size(); a++){
if (maxL < list.get(a).length()){
maxL = list.get(a).length();
}
}
for (int b = 0; b < list.size(); b++){
if (minL > list.get(b).length()){
minL = list.get(b).length();
}
}
for (String string : list) {
if (string.equals(maxL)||string.equals(minL)){
System.out.println(string);
break;
}
}
}
}
Anastasia Kunitsyna
18 уровень
Ребят, то не так? Помогите, пож, решить задачу этого проклятого 7го уровня)) вообще перестал выводить...
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alexey Maleev Software Developer
26 сентября 2018, 07:03
Можно сделать проще :
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> strings = new ArrayList<String>();
int i_min = 0;
int i_max = 0;
for(int i=0; i<10; i++) {
strings.add(reader.readLine());
if (i == 0)
continue;
if (strings.get(i).length() > strings.get(i_max).length())
i_max = i;
else if (strings.get(i).length() < strings.get(i_min).length())
i_min = i;
}
int idx = (i_min < i_max)? i_min : i_max;
System.out.println(strings.get(idx));
+8
Anastasia Kunitsyna
26 сентября 2018, 09:46
Да, так побыстрее. Но рука уже на if набита. Пока что сложновато припоминается краткая запись. Спасибо, что обратили мое внимание.
0
Anastasia Kunitsyna
26 сентября 2018, 09:47
*в смысле if в цикле, короче, Вы поняли :-)
0
WantToSleep
26 августа 2019, 15:35
можно еще проще :
+2
Евгений Java Developer Expert
25 сентября 2018, 13:50
Не пойму последний цикл
string.equals(maxL)||string.equals(minL)
maxL и minL - это длины строк.
0
Anastasia Kunitsyna
25 сентября 2018, 14:09
ага, ну вроде как, если встретил длину maxL или minL (они рассчитаны ранее), выводи и завершайся) Так было задумано) Но что-то явно пошло не так)
0
Евгений Java Developer Expert
25 сентября 2018, 14:11
а чего у нас делает string.equals ? )
+1
Евгений Java Developer Expert
25 сентября 2018, 14:16
на так , ещё подсказка.
string = "Вася", maxL = 4
Спрашиваем у программы "Вася" == "4" ?
+1
Anastasia Kunitsyna
25 сентября 2018, 14:17
Переписала немного и прошла валидацию)
Пока думала, что отвечать, пришел в голову ответ :-)
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() == (maxL) || list.get(i).length() == (minL)) {
System.out.println(list.get(i));
break;
0
Anastasia Kunitsyna
25 сентября 2018, 14:18
спасибо!
0