Дополнительные символы в строке | ЛитКод 2707JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Дополнительные символы в строке | ЛитКод 2707

Сообщение Anonymous »

Я застрял, решая сегодняшнюю ежедневную проблему с Leetcode, и прошу ваших ребят о помощи. Вот задача:

Вам даны строка s с нулевым индексом и словарь слов. Вам необходимо разбить s на одну или несколько непересекающихся подстрок так, чтобы каждая подстрока присутствовала в словаре. В s могут быть дополнительные символы, которых нет ни в одной из подстрок.
Верните минимальное количество оставшихся дополнительных символов, если вы оптимально разбили s.

Вот вводимые данные:

s =
"rkmsilizktprllwoimafyuqmeqrujxdzgp"


dictionary =
["afy","lyso","ymdt","uqm","cfybt","lwoim", "hdzeg","th","rkmsi","d","e","tp","r","jx","tofxe","etjx","llqs","cpir","p ","ncz","ofeyx","eqru","l","demij","tjky","jgodm","y","ernt","jfns","akjtl","wt", "tk","zg","lxoi","kt"]

Я нахожусь на этапе, когда я сдал тесты 2020/2028 года, но Я просто не понимаю, где в моем коде ошибка:

Код: Выделить всё

class Solution {
public int minExtraChar(String s, String[] dictionary) {
List dictionary2 = new ArrayList();
for (String str: dictionary){
if (s.contains(str)){
dictionary2.add(str);
}
}
List sorted = dictionary2.stream()
.sorted(Comparator.comparingInt(String::length).reversed())
.collect(Collectors.toList());
for (String a: sorted){
System.out.println(a);
}
for (String str: sorted){
if (s.contains(str)){
System.out.println("----------------------------");
System.out.println(s);
System.out.println(str);
String ak = " ";
ak = ak.repeat(str.length());
s = s.replace(str,ak);
}
}
s = s.replace(" ","");
System.out.println(s);
return s.length();
}
}
Предполагается, что выходное значение равно 2, а мое — 3.
Я знаю, что это не самый традиционный способ решения этой проблемы, но есть ли способ изменить этот код, чтобы он работал, или мне следует начать с самого начала?
Спасибо за любую помощь :).

Подробнее здесь: https://stackoverflow.com/questions/790 ... tcode-2707
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»