Алгоритм задачи понял сразу и как ее решить понять было не трудно совсем. Но еще в самом начале наткнулся на проблему, когда начал перебирать список, в первом цикле прописал i<words.size(), т.к. думал что могу взять элементы со списка words, хотя смущало что он совсем в другом блоке. Не получилось. Начал прописывать свой список из которого бы мог перебирать элементы, но валидатор потребовал прописать конструкцию try/catch и тут я понял что что-то не то, так как задача уж совсем легкая. Стал думать, присмотрелся к этому (ArrayList<String> list) и только с помощью обсуждений понял, что надо в цикле перебирать элементы из list, после этого все легко решил. Но я никак не пойму как появился список (ArrayList<String> list) и почему он содержит элементы списка words??? Объясните пожалуйста.