Тема: Масив і Файл
У масиві знайти відрізок максимальної довжини, в якому перше число рівне останньому, друге - передостанньому і так далі Надрукувати характеристики цього відрізка (довжину і номер першого елементу). Розмір масиву (Nі10) задається з клавіатури. Масив може заповняться уручну або автоматично (з файлу або за допомогою функції random()). Результат роботи програми виводиться на монітор і у файл (output.txt). Передбачити обробку помилок.
package pr1_5;
import java.util.*;
public class Pr1_5
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter your N: ");
int n = in.nextInt();
int[] arrInt = new int[n];
int temp;
for(int i = 0, j = n-1; i <= n/2+1; ++i,--j)
{
temp = (int)(Math.random()*(200+1))-100;
arrInt[i] = temp;
arrInt[j] = temp;
}
String pattern = Arrays.toString(arrInt).replaceAll(" ","")
.substring(1).replace(']', '\0');
Set<String> subPatterns = getSetSubstrFromIntArr(arrInt);
for (String keyStr : subPatterns)
if (pattern.indexOf(keyStr) != -1)
{
System.out.println(keyStr);
break;
}
}
static Set<String> getSetSubstrFromIntArr(int[] arrInt)
{
Set<String> strSet = new TreeSet<>(Comparator.comparing(String::length).reversed());
StringBuilder key = new StringBuilder();
for (int i = arrInt.length-1; i >= 0 ; i--)
{
key.append(arrInt[i]).append(',');
strSet.add(key.toString());
}
return strSet;
}
}