Member 14852181 Ответов: 2

Ява: найдите ближайший/ближайшие гласный с - з


Привет ребята,
может ли кто-нибудь помочь мне с простым кодом?
Пример:
a b c d e f g h i j k l m n o p q r s t u v w x y z

Гласные: A, E, I, O, U,

Мне нужно главное и метод.~

Если я введу m, то следующая гласная будет o, так что выход будет: 2
Как я могу закодировать это, чтобы иметь выход 2?

Вопрос 2:
Вход x и выход равны 3 ( расстояние от U равно 3, а после z нет никаких гласных)

Вопрос 3:

Вход a и выход равны 0 (его пребывание 0 от гласной, потому что буква сама является гласной)

У кого-нибудь есть идеи? пожалуйста, используйте простой код.
Спасибо

Что я уже пробовал:

Вопрос 2:
public static char closeVowel(символ символа) {
если(символ == 'з' || символ == 'з')
return (char) (значение - 25);
if(isVowel(символ)) {
Возвращение героя;
} еще {
return closeVowel((char) (value - 1));
}
}

public static boolean isVowel(символ char) {
return "aeiouAEIOU".indexOf(character) >= 0;
}

что писать внутри основного метода? Я не хочу использовать indexof, есть ли способ просто закодировать его? для новичка, чтобы понять?

Вопрос 3 ( пока нет кода)

2 Ответов

Рейтинг:
1

OriginalGriff

Мы здесь не делаем домашнюю работу, так что я не дам вам никакого кода!

Вместо этого подумайте о том, как вы могли бы сделать это вручную: у вас был бы список позиций гласных в алфавите - 0, 4, 8, 14, 20 и список буквенных позиций: а == 0, в == 1 и так далее.
Затем вы находите, в какой паре позиций гласных находится данная буква: m = 12, к ней относятся участки между i == 8 и o == 14
Вычтите первое из положения буквы, а положение буквы из последнего, и вы получите два расстояния.
Меньшее из двух расстояний-это искомое значение.

Очевидно, что если вы находитесь выше самой высокой гласной (u == 20, данная буква-V, W, X, Y или Z), то вам нужно проверить это (но добавление фиктивной "6-й гласной" в позиции 999 решает эту проблему, если вы подумаете об этом.

Попробуйте: сделайте это вручную, и вы поймете, что я имею в виду.


Рейтинг:
0

Richard MacCutchan

По мере прохождения списка вам нужно сохранить индекс персонажа, которого вы пытаетесь найти. Если они расположены в алфавитном порядке, то легко начать с правильной точки. Оттуда вы двигаетесь вперед в поисках следующей гласной. Если он найден, то вы можете вычислить смещение от поискового символа. Если не найдено, верните какое-то другое значение. Так что если вы ищете " а " в приведенном выше списке:
Буквенное положение буквы "а" (то есть ее числовое значение относительно алфавита) равно 0.
Если текущий символ является гласным, то результатом является смещение " а " минус смещение найденного гласного, которое равно 0 - 0 или 0.

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