• 5.75

  • +10.36

  • ,

Какой следующий язык собираетесь изучать после Java?

опрос
В комментариях можете отметить почему именно этот. Так же можно уточнить какой именно есть вы отметили пункт другой.
  • ,

Кухня(); Второй сезон - 79/79



79. Алгоритм фон Неймана. Упорядочить массив а1, а2, ..., аn по неубыванию с помощью алгоритма сортировки слияниями: каждая пара соседних элементов сливается в одну группу из двух элементов (последняя группа может состоять из одного элемента), затем каждая пара соседних двухэлементных групп сливается в одну четырехэлементную группу и т.д. При каждом слиянии новая укрупненная группа упорядочивается.

Кухня ПРАВИЛА
  • ,

Регулярные выражения в Java

RegEx

Регулярное выражение это своего рода шаблон, который может быть применен к тексту (String, в Java). Java предоставляет пакет java.util.regex для сопоставления с регулярными выражениями. Регулярные выражения очень похожи на язык программирования Perl и очень просты в освоении.
Регулярное выражение или соответствует тексту (его части) или нет.
* Если регулярное выражение совпадает с частю текста, то мы можем найти еe.
** Если регулярное выражение составное, то мы можем легко выяснить, какая часть регулярного выражения совпадает с какой частью текста.

Первый пример
Регулярное выражение "[a-z] +" соответствует всем строчныем буквам в тексте.
[a-z] означает любой символ от a до z включительно, и + означает «один или более» символов.

Предположим, что мы поставляем строку «code 2 learn java tutorial ».

Как это сделать в Java

Во-первых, вы должны составить шаблон:
import java.util.regex.*;
Pattern p = Pattern.compile(“[a-z]+”);

Далее вы должны создать matcher для текста, отправив сообщение на схеме:
Matcher m = p.matcher(“code 2 learn java tutorial”);


ПРИМЕЧАНИЕ:
Ни Pattern ни Matcher не имеют конструкторов, мы создаем их с помощью методов класса Pattern.

Pattern Class: Объект класса составляет представление регулярного выражения. Класс Pattern не предусматривает никаких публичных конструкторов. Чтобы создать шаблон, необходимо сначала вызвать один из публичных статических методов, которые затем возвращают объект класса Pattern. Эти методы принимают регулярное выражение в качестве аргумента.

Matcher Class: Объект «Искатель» является двигателем, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и Pattern класс, Matcher не имеет публичных конструкторов. Вы получаете объект Matcher вызовом метода matcher, на объекте класса Pattern.

После того как мы выполнили эти шаги, и теперь у нас есть экземпляр класса Matcher m, и теперь мы можем проверить, был найден шаблон или нет, и если да, то в какой позиции, и т.д.

m.matches() возвращает true, если шаблон соответствует всей строке, иначе false.
m.lookingAt() возвращает true, если шаблон соответствует началу строки, и false в противном случае.
m.find () возвращает true, если шаблон совпадает с любой частью текста.

Находим совпадение

После успешного сопостовления, m.start() вернет индекс первого символа, совпавшего и m.end() вернет индекс последнего совпавшего символа, плюс один.
  • ,

Let me show you something new

CodingGame

Всем привет! Хотите покодить? Сегодня я нашел кое-что, о чем я просто не могу молчать.
Те, кто любит сам разбираться что к чему, попрошу сразу на http://www.codingame.com/, остальным — вкратце опишу что к чему ниже.

Как это работает?

Как играть?
Программированная игра(согласен, нужен перевод получше), в нашем случае это пошаговая игра. Каждый ход мы получаем информацию из стандартного потока ввода(например Map врагов и.т.д.), после этого наш код проводит необходимые вычисления и выводит их в стандартный поток вывода(например выстрел или движение). Для каждого языка программирования дается стандартный код по умолчанию. Этот небольшой туториал покажет как все работает.
Какими средами разработки мы можем пользоваться?
Конечно же нас интересует Java, но помимо имеются и C, C++, C#, PHP, Python2, Python3, Ruby, JavaScript, Objective-C, Go, Haskell, Scala, Perl, Dart, Bush, Pascal, Groovy, Clojure, VB.NET.
Компилироваться и запускаться ваш код будет на 64-битном Linux с много-ядерной архитектурой. Лимит на время работы указываются в каждом задании. Память ограничивается 768 мб.
Тут есть полная таблица, а нас интересует вот эта строчка:
Language 	Compiler 	Memory limit (MB)
Java		Oracle Java 1.8              768


1.8 неплохо, верно?
Зайдите на сайт и сами увидите как все круто оформлено. Имеется как одиночная игра с четырьмя уровнями сложности, так и сетевая. Если я не ошибаюсь, каждый месяц проводят соревнования в которых можно продемонстрировать свои навыки.
Я пока прошел одно задание и сразу воодушевленный игрой сел скорее с вами поделиться.
Так что:
  • Кодим
  • Получаем удовольствие
  • Подтягиваем английский
Судя по первому заданию, я рекомендую минимум 8 уровень на JavaRush. Тем, кто еще не достиг, желаю удачи, сам бы повторил! :) Высказывайте ваши мнения по поводу codingame. Удачи! :)

P.S.: Ищем повара
  • ,

Кухня(); Второй сезон - 77/79



77. Пусть даны неубывающая последовательность действительных чисел a1 ≤ a2 ≤… ≤ аn и действительные числа b1 ≤ b2 ≤… ≤ bm. Требуется указать те места, на которые нужно вставлять элементы последовательности b1, b2, ..., bm в первую последовательность так, чтобы новая последовательность оставалась возрастающей.

Кухня ПРАВИЛА

Кухня(); Второй сезон - 76/79



76. Сортировка Шелла. Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим образом: сравниваются два соседних элемента ai и аi+1. Если ai ≤ ai+1, то продвигаются на один элемент вперед. Если ai > ai+1, то производится перестановка и сдвигаются на один элемент назад. Составить алгоритм этой сортировки.

Кухня ПРАВИЛА

Кухня(); Второй сезон - 75/79



75. Сортировка вставками. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть а1, а2, ..., аi – упорядоченная последовательность, т.е. a1 ≤ a2 ≤… ≤ аi. Берется следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была также возрастающей. Процесс производится до тех пор, пока все элементы от i+1 до n не будут перебраны.

Кухня ПРАВИЛА

Кухня(); Второй сезон - 74/79



74. Сортировка обменами. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа аi и ai+1. Если аi > аi+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не станут расположены в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количество перестановок.

Кухня(); Второй сезон - 73/79



73. Сортировка выбором. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Затем, начиная со второго, эта процедура повторяется. Написать алгоритм сортировки выбором.

Кухня(); Второй сезон - 71/79


Всем привет! А вот и кухня!

Во втором сезон, в отличии от первого, задач будет на порядок меньше. Несмотря на это, сезон будет не менее интересным! Превью как бы намекает что речь пойдет о сортировке. Если вы еще не слышали про кухню — это не беда. Гляньте первый урок и все поймете. Там вы ознакомитесь и с правилами.

С нетерпением жду ваших изящных решений! И да будут они читабельны! Have fun! :)


71. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элементами первого, не используя дополнительный массив.