Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

(изменено)

Мое мнение, если предмет не касается конкретного языка, вроде "практикум по теорверу" или "алгоритмы и структуры данных", то это плюс, что препод готов на разных языках лабы принимать. Ну кого ебет, си, паскаль, жаба всё одна хуйня будет примерно по итогу.

Есть вопрос по жабе, чото меня поплавило не могу загуглить

for(Xyu x : dicks){

     try{

         ebat(x);

     }catch(FuckException e){

         e.printStackTrace();

     {

}

 

Как обработать исключение и при этом не перестать перебирать коллекцию?
Или оно так и сработает? 
 


Изменено пользователем Matriarch

Поделиться сообщением


Ссылка на сообщение

Есть вопрос по жабе, чото меня поплавило не могу загуглить

 

for(Xyu x : dicks){

     try{

         ebat(x);

     }catch(FuckException e){

         e.printStackTrace();

     {

}

 

Как обработать исключение и при этом не перестать перебирать коллекцию?

У тебя и так обрабатывается исключение, а после перебор коллекции продолжается.
JuJeu, m()stEVIL и Matriarch понравилось это

Поделиться сообщением


Ссылка на сообщение

Мое мнение, если предмет не касается конкретного языка, вроде "практикум по теорверу" или "алгоритмы и структуры данных", то это плюс, что препод готов на разных языках лабы принимать. Ну кого ебет, си, паскаль, жаба всё одна хуйня будет примерно по итогу.

 

Есть вопрос по жабе, чото меня поплавило не могу загуглить

 

for(Xyu x : dicks){

     try{

         ebat(x);

     }catch(FuckException e){

         e.printStackTrace();

     {

}

 

Как обработать исключение и при этом не перестать перебирать коллекцию?

Или оно так и сработает? 

 

было бы по - другому, если бы ты вынес try/catch из for цикла.


Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

 

 

Или оно так и сработает? 
 

Оно и так сработает, если ты конечно ловишь то исключение. И это не failsafe исключение итератора, в таком случае ты можешь заблокировать себе анус. 


Хотя фейлсейф выбрасываются в блоке for что выше, так что пiхуй.


Тьфу, fail-fast 

Поделиться сообщением


Ссылка на сообщение

Прикольная задачка, довольно простая, но сходу дохуя решений придумалось и ни одного красивого :trollface:

Есть массив:

[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37];

нужно прогнать его через функцию, чтобы получился следующий:

["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"]

Типа последовательные числа схлопывались в рейндж, если в рейндже 2 элемента, то через , (пример 24 и 25).

Исходный массив состоит из чисел и отсортирован по возрастанию :buba:

Поделиться сообщением


Ссылка на сообщение

ни одного красивого

 

а какже

 

template <int...ARGS>
std::array<bool, SIZE> func(){
...
std::for_each(numbers.begin(), numbers.end(), some_func);
...
}

и будет инициализировать как ты написал

Поделиться сообщением


Ссылка на сообщение
(изменено)

Есть массив:

[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37];

нужно прогнать его через функцию, чтобы получился следующий:

["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"]

def collapse_array(initial_arr):
    collapsed_arr = []
    
    i = 0
    while i < len(initial_arr):
        start = initial_arr[i]
        end = initial_arr[i]
        
        j = 1
        while i + j < len(initial_arr):
            if initial_arr[i + j] - start == j:
                end = initial_arr[i + j]
                j += 1
            else:
                j -= 1  # go 1 step back to not overjump the nonconsecutive element under the index i+j
                break
        
        if start == end:
            collapsed_arr.append(str(start))
        elif end - start == 1:
            collapsed_arr.append(str(start))
            collapsed_arr.append(str(end))
        else:
            collapsed_arr.append(f'{start}-{end}')
        
        i += 1 + j
    
    return collapsed_arr

Изменено пользователем moonfangtopich

Поделиться сообщением


Ссылка на сообщение

Прикольная задачка, довольно простая, но сходу дохуя решений придумалось и ни одного красивого :trollface:

Есть массив:

[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37];

нужно прогнать его через функцию, чтобы получился следующий:

["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"]

Типа последовательные числа схлопывались в рейндж, если в рейндже 2 элемента, то через , (пример 24 и 25).

Исходный массив состоит из чисел и отсортирован по возрастанию :buba:

const reshenie = computer sdelay pliz iz vot etogo [5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37], vot eto ["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"];

 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение


int[] array = new int[]{5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37};
ArrayList<String> list = new ArrayList<>(array.length);
for (int i = 0; i < array.length; i++) {
int currentCopy = array[i];
int caret = i;
while (caret < array.length - 1) {
if (array[++caret] != ++currentCopy) {
caret--;
break;
}
}
if (caret - i > 1) {
list.add(array[i] + "-" + array[caret]);
i = caret;
} else {
list.add(String.valueOf(array[i]));
}
}
list.trimToSize();
String[] result = list.toArray(new String[0]);

System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(result));


[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37]

[5, 10-14, 17-19, 24, 25, 27-29, 31, 35-37]

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

щас тут чутка приходится писать на джавке.

какой же мерзопакостный и отсталый язык. это ппц.

можно конкретные примеры и как они реализованы в приятнопакостных яп?

 

неприведу лично свой кейс ибо лень раскладывать в чем именно проблема - просто когда пишешь испытываешь подгорания что нет вывода типов, что нужно писать кучу констркций.

 

более конкнретно могу привести пример на который недавно наткнулся

берем туториал по акке, там есть API для джавы и для скалы, одинаково развивающееся. и сниппеты петпроджекта в туториале приведены в обоих языках

https://doc.akka.io/docs/akka/current/guide/tutorial_4.html

попереключай и охуей что джава занимает х2-х3 места

если ее отформатировать компактно (не по код стайлу но ближе к скале) то там всеравно получается х1.5


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

 


https://doc.akka.io/...tutorial_4.html

попереключай и охуей что джава занимает х2 места

Ну охуеть. Добавили синтаксический сахар сворачивающий POJO до простого описания конструктора. 


Можно пользоваться каким ломбоком, ну или мигрировать на тот же котлин, который проще скалы.

Поделиться сообщением


Ссылка на сообщение

Решение от Рустера:

 

function last(arr) {
  return arr[arr.length - 1];
}

function preLast(arr) {
  return arr[arr.length - 2];
}

function func(arr) {
  return arr
    .reduce((acc, cur, idx) => {
      const prev = last(acc) || [];

      if (preLast(prev) + 2 === cur || last(prev) + 2 === arr[idx + 1]) {
        prev.push(cur);
      } else {
        acc.push([cur]);
      }

      return acc;
    }, [])
    .map(part =>
      part.length > 1 ? `${part[0]}-${last(part)}` : part[0].toString()
    );
}

P.S. Зеллар даун

 

Поделиться сообщением


Ссылка на сообщение

 

https://doc.akka.io/...tutorial_4.html

попереключай и охуей что джава занимает х2 места

Ну охуеть. Добавили синтаксический сахар сворачивающий POJO до простого описания конструктора. 

Можно пользоваться каким ломбоком, ну или мигрировать на тот же котлин, который проще скалы.

 

можно. не совсем понял причем здесь котлин. я не говорю что скала лучше котлина и лучше всех

 

я говорю что джава это полное говно

если честно - не знаю примеров проектов которые все в ломбоке и в ФП библиотеках - так почти не программируют

 

вообще из говна можно строить дома (на джаве можно все что угодно) но я как строитель хотел бы строить из кирпичей и бетона, а не говна и палок


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

считаю, что питон поссал на все вышескинутое

Поделиться сообщением


Ссылка на сообщение
(изменено)

вот я и добрался до рязани, парни. разбил шалаш, сижу у костра, электричество здесь еще не изобрели (за мкадом все таки находимся).

вокруг ходят люди с пёсьими головами и ухают совы, надеюсь доживу до утра

 

спасибо жастдуиту за советы, все жизненные проблемы в миг разрешились


Изменено пользователем AskMe-
kijupsik, Lysindr, Akimosik и 2 другим понравилось это

Лишь ощутив баттхерт до конца, мы обретаем свободу

bf4ffc239860.png

Поделиться сообщением


Ссылка на сообщение

ну вот, а ты жаловался


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

ZAvApKO.jpg


Лишь ощутив баттхерт до конца, мы обретаем свободу

bf4ffc239860.png

Поделиться сообщением


Ссылка на сообщение

public static string[] AggregateArray(int[] input, int span)
{
    var output = new List<string>(input.Length);

    int i = 0;
    while (i < input.Length)
    {
        int j = i;
        while (j < input.Length - span && input[j + span] - input[j] == span)
            j++;

        var range = input[i].ToString();
        if (j > i)
        {
            range += "-" + input[j + span - 1];
            i = j + span;
        }
        else
        {
            i++;
        }

        output.Add(range);
    }
    return output.ToArray();
} 

хуй знает че там про сложность в красивости решения

я тесты писал дольше, чем код на любого размера спан

целый цикл в цикле, фактически 4 строки, ебать


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Прикольная задачка, довольно простая, но сходу дохуя решений придумалось и ни одного красивого :trollface:

Есть массив:

[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37];

нужно прогнать его через функцию, чтобы получился следующий:

["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"]

Типа последовательные числа схлопывались в рейндж, если в рейндже 2 элемента, то через , (пример 24 и 25).

Исходный массив состоит из чисел и отсортирован по возрастанию :buba:

for fun решил функционально

  val initialArray = Seq(5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37)

  val consecutiveGrouped = initialArray.foldLeft(Seq.empty[Seq[Int]]) { (acc, item) =>
    acc.headOption
        .filter(_.headOption.contains(item - 1)) // определяем содержит ли крайняя группа значение предшествующее текущему
        .map(lastGroupContainedPrev => (item +: lastGroupContainedPrev) +: acc.tail) // тогда добавляет в начало текущей группы данное значение
        .getOrElse(Seq(item) +: acc) // если не содержит то формируем новую группу состоящую из текущего элемента
  }.map(_.reverse).reverse // List(List(5), List(10, 11, 12, 13, 14), List(17, 18, 19), List(24, 25), List(27, 28, 29), List(31), List(35, 36, 37))

  val groupsWithSeparatedPairs = consecutiveGrouped.map {
    case a :: b :: Nil => Seq(Seq(a), Seq(b))
    case it => Seq(it)
  }.reduce(_ ++ _)

  val result = groupsWithSeparatedPairs.map {
    case single :: Nil => single
    case g => g.head + "-" + g.last
  }
  println(result) // List(5, 10-14, 17-19, 24, 25, 27-29, 31, 35-37)

btw

мне тут недавно предлагали сравнить java vs norm_yazik

напишите на джаве это таким же функциональным образом. можно использовать библиотечки. и сравните


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

Прикольная задачка, довольно простая, но сходу дохуя решений придумалось и ни одного красивого :trollface:

Есть массив:

[5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37];

нужно прогнать его через функцию, чтобы получился следующий:

["5", "10-14", "17-19", "24", "25", "27-29", "31", "35-37"]

Типа последовательные числа схлопывались в рейндж, если в рейндже 2 элемента, то через , (пример 24 и 25).

Исходный массив состоит из чисел и отсортирован по возрастанию :buba:

for fun решил функционально

  val initialArray = Seq(5, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 27, 28, 29, 31, 35, 36, 37)

  val consecutiveGrouped = initialArray.foldLeft(Seq.empty[Seq[Int]]) { (acc, item) =>
    acc.headOption
        .filter(_.headOption.contains(item - 1)) // определяем содержит ли крайняя группа значение предшествующее текущему
        .map(lastGroupContainedPrev => (item +: lastGroupContainedPrev) +: acc.tail) // тогда добавляет в начало текущей группы данное значение
        .getOrElse(Seq(item) +: acc) // если не содержит то формируем новую группу состоящую из текущего элемента
  }.map(_.reverse).reverse // List(List(5), List(10, 11, 12, 13, 14), List(17, 18, 19), List(24, 25), List(27, 28, 29), List(31), List(35, 36, 37))

  val groupsWithSeparatedPairs = consecutiveGrouped.map {
    case a :: b :: Nil => Seq(Seq(a), Seq(b))
    case it => Seq(it)
  }.reduce(_ ++ _)

  val result = groupsWithSeparatedPairs.map {
    case single :: Nil => single
    case g => g.head + "-" + g.last
  }
  println(result) // List(5, 10-14, 17-19, 24, 25, 27-29, 31, 35-37)

btw

мне тут недавно предлагали сравнить java vs norm_yazik

напишите на джаве это таким же функциональным образом. можно использовать библиотечки. и сравните

 

Что такое val? может ты хотел написать var? Ты ебанутый?


Изменено пользователем Zellar

 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...