Java String Exercises: Проверьте, являются ли две строки чередованием указанной строки
Строка Java: упражнение 36 с решением
Напишите программу на Java, чтобы проверить, являются ли две строки чередованием данной строки. Предполагая, что уникальные символы в обеих строках.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Main {
public static void main(String args[]) {
String str1 ="MNO";
String str2 ="PQ";
String str3 ="PMQNO";
System.out.println("The given string is: " + str3);
System.out.println("The interleaving strings are " + str1 + " and " + str2);
System.out.println("The given string is interleaving: " + checkInterleaved(str1, str2, str3));
}
private static boolean checkInterleaved(String str1, String str2, String CheckInString) {
int i = 0, j = 0, k = 0;
if (str1.length() + str2.length() != CheckInString.length()) {
return false;
}
while (k < CheckInString.length()) {
if (i < str1.length() && str1.charAt(i) == CheckInString.charAt(k)) {
i++;
} else if (j < str2.length() && str2.charAt(j) == CheckInString.charAt(k)) {
j++;
} else {
return false;
}
k++;
}
if (!(i == str1.length() && j == str2.length() && k == CheckInString.length())) {
return false;
}
return true;
}
}
Пример вывода:
Данная строка: PMQNO Чередующиеся строки - это MNO и PQ Данная строка чередуется: true Данная строка: PNQMO Чередующиеся строки - это MNO и PQ Данная строка чередуется: false
NB: во 2-м случае в строке чередования N идет перед M, а в исходной строке str1 = MNO (N идет после M), поэтому оно не чередуется.
Блок - схема:
Редактор кода Java:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите Java-программу для печати всех перестановок данной строки с повторением.
Далее: написать программу на Java, чтобы найти длину самой длинной подстроки без повторяющихся символов
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования