Получение комбинаций подстрок - PullRequest
0 голосов
/ 13 июля 2020

Допустим, у меня есть строка = "hellomen".

Допустим, у меня есть база данных, и я могу сравнивать комбинации подстрок в указанной строке и определять, является ли подстрока допустимым словом с минимум 3 буквами. При проверке не должно быть перекрытий или неиспользованных букв.

Вывод:

  1. черт, примета
  2. привет, мужики

Как получить разные комбинации подстрок для проверки?

Например:

START

1-я проверка:

hel, lomen (возвращает сбой, недопустимые слова)

2-я проверка:

черт, знамение (возвращает успех)

3-я проверка:

привет, мужчины (возвращает успех)

4-я проверка:

hellomen (не возвращается)

END

1 Ответ

0 голосов
/ 13 июля 2020

Вы могли бы очень легко сделать for l oop через строку. Если вы знаете, что слово состоит как минимум из 3 символов, вы можете использовать что-то вроде следующего.

int size = wordToCheck.length();
for (int i = 3; i + 3 < size; i++) {
    if (myDatabase.isValidWord(wordToCheck.substring(0, i) && 
myDatabase.isValidWord(wordToCheck.substring(i, size))) { // check against the database
        listOfGoodWords.add(wordToCheck.substring(0, i));
        listOfGoodWords.add(wordToCheck.substring(i, size)); // add to a list of successes
    }
}

Здесь wordToCheck.substring(0, i) - это первая часть вашего слова, а wordToCheck.substring(i, size) - это вторая часть. Для listOfGoodWords у вас может быть любая структура данных для хранения ваших успешных строк, например ArrayList<String>, или если вы хотите хранить пары вместе, вы можете сохранить ArrayList<String[]>, где каждый элемент представляет собой массив из двух строк, что является успешной парой, но на самом деле эта структура данных может быть любой, какой вы хотите, и которая лучше всего подходит для того, что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...