Здравейте.
Доста въртях, суках, да напиша код, който да изпълни условието на задачата, но така и не можах да се справя.
Реално задачата я реших след като прочетох за HashSet, но не е ли идеята да се справим с задачите за упражнение (поне на този етап) без да използваме вградени функции. Ако е да, някой може ли да ми подскаже за алгоритъма…
Здравей, пробвай да обиколиш всеки елемент от масива, като събираш числата, които ти трябват в променлива, която накрая принитш, пък повтарящите се ги променяш , за да не ти пречат и с проверка проверяваш това число, на което си, дали си го открил като повтарящо се, или ти трябва и ще го вземаш в променливата извън цикъла. Ако не се разбира това, което ти написах, ще пробвам по-директно да обясня ама така и подсказката е по-голяма
Здрасти! Аз също пробвах да я реша с HashSet, но не стана, защото не се запазва оригиналната последователност на елементите, успях да я реша с LinkedHashSet който, чиито свойства са че не запазва повтарящи се елементи, но поддържа оригиналната последователност, обаче не ми я приема системата, въпреки че при тестовете всичко е наред, някой има ли идея защо не я приема? Благодаря! Ето и кодът ми:
import java.util.*;
public class RemoveDuplicates {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] list = sc.next().split(",");
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>(List.of(list));
String[] array = new String[linkedHashSet.size()];
linkedHashSet.toArray(array);
for (int i = 0; i < array.length; i++) {
if (i > 0) {
System.out.print(",");
}
System.out.print(array[i]);
}
}
}
Задачата се решава с обикновен List. Направете проверка дали даден символ вече го има и ако го няма само тогава да се добави , надявам се да не ви улесних прекалено много
@miroslav.ivnv Благодаря много за насоките, това е кодът, който успях да напиша и минава:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Duplicates {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String el = sc.nextLine();
String[] elements = el.split(",");
ArrayList<String> withDuplicates = new ArrayList<>();
ArrayList<String> withoutDuplicates = new ArrayList<>();
for (int i = 0; i < elements.length; i++) {
withDuplicates.add ((elements[i]));
if(!withoutDuplicates.contains(withDuplicates.get(i))){
withoutDuplicates.add(withDuplicates.get(i));
} else {
continue;
}
}
System.out.println(withoutDuplicates.toString().replace("[", "").replace(" ", "").replace("]", ""));
}
}
За какво ти е 2-а List ?
И това else continue е излишно