Найти тему
DEBAGanov

Java 458. Вывести общие символы между двумя строками в алфавитном порядке в Java?

Чтобы вывести общие символы между двумя строками в алфавитном порядке на Java, можно использовать метод toCharArray() класса String, чтобы получить массив символов из каждой строки. Затем можно отсортировать массивы символов и сравнить их элементы, выводя только те символы, которые встречаются в обоих массивах.

Вот пример кода на Java, который реализует такой алгоритм:

public static void printCommonCharacters(String str1, String str2) {
char[] chars1 = str1.toCharArray(); // получаем массив символов из первой строки
char[] chars2 = str2.toCharArray(); // получаем массив символов из второй строки
Arrays.sort(chars1); // сортируем массив символов первой строки Arrays.sort(chars2); // сортируем массив символов второй строки
int i = 0, j = 0;
while (i < chars1.length && j < chars2.length) {
// пока не достигнут конец хотя бы одного из массивов
if (chars1[i] == chars2[j]) { // если символы равны System.out.print(chars1[i] + " "); // выводим символ на экран
i++; // переходим к следующему символу в первом массиве
j++; // переходим к следующему символу во втором массиве
} else if (chars1[i] < chars2[j]) {
// если символ из первого массива меньше символа из второго массива
i++; // переходим к следующему символу в первом массиве
} else {
// иначе (если символ из второго массива меньше символа из первого массива)
j++; // переходим к следующему символу во втором массиве
}
}
}

В этом примере мы используем метод toCharArray() класса String, чтобы получить массив символов из каждой строки. Затем мы сортируем оба массива символов, используя метод sort() класса Arrays.

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

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

Пример использования:

String str1 = "abcde";
String str2 = "befg";
printCommonCharacters(str1, str2);

В этом примере мы создаем две строки str1 и str2. Затем мы вызываем функцию printCommonCharacters() для вывода всех общих символов между строками. Выводится список общих символов в алфавитном порядке - "b e".

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov