/
hel_bumer
/
Hash
Обзор
Документация
Войти
/
hel_bumer
/
Hash
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
57 строк
3 KB
hel_bumer
Dz_hash
31 янв 2026, 11:07
Верифицирован
31 янв 2026, 11:07
4e157a7
Код
Авторство
О чём код?
import java.io.*; //Есть строка source и задано число size, //которое меньше её длины. Требуется проверить, //нет ли таких двух подстрок source длины size, которые были равны. public class Main { public static void main(String[] args) throws IOException { String source = "CACABABABCCCAABAC"; //System.out.println(StringT); System.out.println(LazyString.hasRepeats(source, 4)); // true, тк ABAB встречается два раза, хоть эти куски и пересекаются System.out.println(LazyString.hasRepeats(source, 5)); // false } // наивное решение // public static boolean hasRepeats(String source, int size) { // List<String> slices = new ArrayList<>(); // список всех подстрок длины size // for (int i = 0; i <= source.length() - size; i++) { // перебор всех мест старта подстроки // String slice = source.substring(i, i + size); // вырезание подстроки // slices.add(slice); // сохраняем подстроку // } // for (int i = 0; i < slices.size(); i++) { // перебираем все пары подстрок для проверки совпадения // for (int j = i + 1; j < slices.size(); j++) { // String slice1 = slices.get(i); // String slice2 = slices.get(j); // if (slice1.equals(slice2)) { // return true; // } // } // } // return false; // если бы нашли, то вышли бы по return true, а значит повторов нет // } // public static boolean hasRepeats(String source, int size) { // Set<String> slices = new HashSet<>(); // множество всех подстрок длины size.Будем складывать подстроки не в список, а в хеш-сет // for (int i = 0; i <= source.length() - size; i++) { // перебор всех мест старта подстроки // String slice = source.substring(i, i + size); // вырезание подстроки // if (slices.contains(slice)) { // проверка на наличие повтора этой подстроки // return true; // если уже встречали, значит повтора нет // } else { // slices.add(slice); // иначе запоминаем подстроку и перебираем дальше // } // } // return false; // если бы нашли, то вышли бы по return true, а значит повторов нет // } // public static int hash1(String source){ // String s = source; // пример строки для расчёта хеша // int hash = 0; // for (int i = 0; i < s.length(); i++) { // hash += s.charAt(i); // // } // return hash; }