Упражнения Java String: Найти длину самой длинной подстроки без повторяющихся символов
Строка Java: упражнение 37 с решением
Напишите программу на Java, чтобы найти длину самой длинной подстроки без повторяющихся символов.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.LinkedHashMap;
public class Main {
static void longestSubstring(String inputString) {
char[] arr1 = inputString.toCharArray();
String long_str = null;
int str_length = 0;
LinkedHashMap & lt;
Character, Integer & gt;
charPosMap = new LinkedHashMap & lt;
Character, Integer & gt;
();
for (int i = 0; i < arr1.length; i++) {
char ch = arr1[i];
if (!charPosMap.containsKey(ch)) {
charPosMap.put(ch, i);
} else {
i = charPosMap.get(ch);
charPosMap.clear();
}
if (charPosMap.size() > str_length) {
str_length = charPosMap.size();
long_str = charPosMap.keySet().toString();
}
}
System.out.println("Input String : " + inputString);
System.out.println("The longest substring : " + long_str);
System.out.println("The longest Substring Length : " + str_length);
}
public static void main(String[] args) {
longestSubstring("pickoutthelongestsubstring");
}
}
Пример вывода:
Входная строка: pickoutthelongestsubstring Самая длинная подстрока: [u, b, s, t, r, i, n, g] Самая длинная длина подстроки: 8
Блок - схема:
Редактор кода Java:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на Java, чтобы проверить, являются ли две строки чередованием данной строки. Предполагая, что уникальные символы в обеих строках.
Далее: написать программу на Java для печати после удаления дубликатов из заданной строки.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code