Приветсвую! задание не такое уж и сложное, реализация ниже (может и корявая, так как за душей 12 лет работы экономистом с экселем). .Но работает. Почему не проходит тестирование? в чем дело? Объясните балде в чем ошибка...

public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String s = reader.readLine();

    String[]lines = s.split(" ");
    for (String line : lines)
    {
        String linE = line.toUpperCase();
        char ch = linE.charAt(0);

        String line2 = line.substring(1);

        System.out.print(ch +line2 + " ");

    }

    for

    //напишите тут ваш код
}

}

задан 10 Янв, 16:23

Makarona's gravatar image

Makarona
103
одобрено: 100%

Не заморачивайтесь сильно с этой задачей. Тут вопрос философский, что валидатор считает словом, а что не считает. Еще не забывайте, что split будет возвращать в том числе и пустые строки, например, между двумя пробелами он найдет пустую строку, которую нужно корректно обработать.

(10 Янв, 22:14) newuser01

Предполагаю, что явно не оптимальный вариант, но он прошел. Зато теперь в голове куча новой информации по работе с символами и строками.

Благодарю newuser01 и Lezenford за подсказки!

 public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();

        char[] chars = s.toCharArray();
        String sUp = s.toUpperCase();
        char[] chars1 = sUp.toCharArray();

        chars[0] = chars1[0];

       for (int i = 0; i < s.length(); i++){
           if (chars[i] == ' ' && chars[i+1] != ' '){
             chars[i+1] = chars1[i+1];
           }
       }

        int k = s.length();
        s = "";

       for (int i = 0; i < k; i++){
           s += Character.toString(chars[i]);
       }

       System.out.println(s);

        //напишите тут ваш код
    }
}
ссылка

опубликован 11 Янв, 17:14

Makarona's gravatar image

Makarona
103
одобрено: 100%

изменено 11 Янв, 17:18

java достаточно быстро работает с массивами, вероятно это решение будет работать быстрее, чем решение с помощью split. Удалите решение, так как публикация работающих решение запрещена правилами.

(11 Янв, 22:00) newuser01
  1. зачем for на 13 строке?
  2. как то сложно у вас... + строка в итоге изменяется - вы после каждого слова делаете пробел, даже после последнего. Валидатор не считает эти строки идентичными - вы же поменяли не только первую букву, но и добавили лишние символы. В этой задаче нет смысла использовать split - проще перебором символов поменять только те, перед которыми есть пробел + первую букву
ссылка

опубликован 11 Янв, 02:32

Lezenford's gravatar image

Lezenford
2185
одобрено: 31%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×3,096

Задан: 10 Янв, 16:23

Просмотров: 40 раз

Отредактирован: 11 Янв, 22:00