У меня есть функция WordSplit(strArr), которая должна читать массив строк, хранящийся в strArr, который будет содержать 2 элемента: первый элемент будет последовательностью символов, а второй элемент будет длинной строкой слов, разделенных запятыми , в алфавитном порядке, который представляет собой словарь произвольной длины.
Например: strArr может быть: ["привет", "яблоко,летучая мышь,кошка,до свидания,привет,желтый,почему"]. Моя цель — определить, можно ли разделить первый элемент ввода на два слова, где оба слова существуют в словаре, предоставленном во втором вводе. В этом примере первый элемент можно разделить на два слова: hello и cat, потому что оба эти слова есть в словаре.
Вы можете создать Set
из словаря (после разделения запятой), а затем проверить каждую точку разделения, проверяя, существуют ли два слова, полученные в каждой точке, в Set
.
function WordSplit([word, dictionary]) {
dictionary = new Set(dictionary.split(","));
for (let i = 0; i < word.length; i++) {
if (dictionary.has(word.slice(0, i)) && dictionary.has(word.slice(i))) {
console.info(word, 'can be split into', word.slice(0, i), 'and', word.slice(i));
return true;
}
}
return false;
}
console.info(WordSplit(["hellocat", "apple,bat,cat,goodbye,hello,yellow,why"]));
Единственный способ, которым я могу это сделать, - это иметь массив строк словарных слов. Это, очевидно, не было бы таким всеобъемлющим и трудоемким. Вы можете проверить каждое слово в strArr против каждого из ваших слов в массиве String словарных слов, используя цикл for, и если слово в strArr содержит какое-либо словарное слово, используя метод contains, тогда вы можете разделить слово в strArr на две части. : part1 идет от charAt 0 в str[i] до CharSequence s, а part2 идет от s до конца str[i].
for(int i = 0; i < strArr.length; i++) {
for (int x = 0; x < words.length; x++) {
CharSequence s = words[x]
if (strArr[i].contains(s) {
String part1 = strArr[i].split(0,s);
String part2 = strArr[i].split(s);
}
System.out.println(part1 + "" + part2);
}
}
Не могли бы вы показать мне этот пример Например: strArr может быть: ["hellocat", "apple,bat,cat,goodbye,hello,yellow,why"]. Моя цель — определить, можно ли разделить первый элемент ввода на два слова, где оба слова существуют в словаре, предоставленном во втором вводе. В этом примере первый элемент можно разделить на два слова: hello и cat, потому что оба эти слова есть в словаре.