Архив для тега php

zimg-host v2.0

Спустя два года после анонса я, наконец, закончил работу над этим сервисом. Исходный код стал более модульным и теперь его будет очень просто встроить в любой сайт.

Изменения
  • Полностью переписан код
  • Полностью изменён дизайн (красивый, адаптивный)
  • Загрузка файлов в реальном времени (AJAX)
Ссылки

uInfo v2.0

Новая версия скрипта получения информации о зашедшем пользователе.

Изменения
  • Рефакторинг
  • Смена лицензии на MIT License
  • Добавлена поддержка Symbian, Windows Phone, Konqueror, Steam Browser
  • Небольшие изменения в дизайне
Ссылки

deHasher v2.0

Новая версия сервиса для поиска хэшей. Полностью переписал клиентскую часть и оптимизировал серверную.

Изменения
  • Большие изменения клиентской части
  • Оптимизация серверной части
  • Оптимизация базы данных
  • Обновления дизайна (+адаптивность)
Ссылки

uInfo v1.7

Новая версия скрипта получения информации о зашедшем пользователе.

Изменения
  • Адаптивный дизайн
  • Исправлен BB код
  • Теперь на английском
  • Яндекс.Браузер изменён на Yandex.Browser
Ссылки

uInfo v1.6

Новая версия скрипта получения информации о зашедшем пользователе.

  • Оптимизация генерации изображений
  • Полностью переписаны index.php и style.css
  • Удалён весь JavaScript код

Живой пример работы: http://ip.ziggi.org/
GitHub: https://github.com/ziggi/uInfo

uInfo v1.5

Новая версия скрипта получения информации о зашедшем пользователе.

  • Добавлена поддержка браузеров UC и Google Chrome для iOS
  • Добавлен скрипт для тестирования

Живой пример работы: http://ip.ziggi.org/
GitHub: https://github.com/ziggi/uInfo

deHasher v1.5

Обновил. Почти полностью переписал серверную часть, теперь приложение изнутри выглядит более-менее приемлемо. В следующей версии перепишу клиентскую часть, ибо с ней есть некоторые проблемы.

Список изменений:
— Большие внутренние изменения
— Добавлен класс Hasher в app.php
— Обновление jQuery до 2.0.3
— Переезд с MySQL на MySQLi
— Небольшие улучшения дизайна
— Добавлена лицензия MIT, доступна в файле LICENSE
— Добавлен CHANGELOG.md, на английском

Живой пример работы: http://hash.ziggi.org/
GitHub: https://github.com/ziggi/deHasher

Нахождение наибольшей общей подстроки

Эта задача была задана одном из тестовых заданий для Tolstoy Summer Camp.

Напишите, пожалуйста, программу для решения описанной ниже задачи. Используйте любой объектно-ориентированный язык. Программа должна представлять собой один файл. Оцениваться будет не только её работоспособность, но и читабельность кода, эффективность и скорость работы алгоритма.

Наибольшая общая подстрока

Даны K строк, нужно найти их наибольшую общую подстроку.

Формат входных данных

В первой строке записано целое число K (1 ≤ K ≤ 10). Далее приведены исходные K строк. Каждая строка состоит не более чем из 10 000 строчных латинских букв.

Формат выходных данных

Выведите наибольшую общую подстроку.

Примеры:
Входные данные
3
abacaba
mycabarchive
acabistrue
Выходные данные
cab

Решение на PHP

$input = "3
abacabchgfsjsdfssdasdaasdabaistrs
mycabarcistrhive
acabistrue";
 
 
// parse input
$array = array_unique( explode("\n", $input) );
$array = array_diff($array, array(""));
unset($array[0]);
 
// get min str
$min_str = min($array);
unset($array[ array_search($min_str, $array) ]);
 
$search_str = $min_str;
$substr = null;
$start_pos = 0;
$min_str_len = strlen($min_str);
 
while ($start_pos++ != $min_str_len) {
 
	while ( strlen($search_str) > strlen($substr) ) {
		// find substr in array
		$sub_str_found = 0;
 
		foreach ($array as $row) {
			if (strpos($row, $search_str) !== false) {
				$sub_str_found = 1;
			} else {
				$sub_str_found = 0;
				break;
			}
		}
 
		if ($sub_str_found == 1) {
			$substr = $search_str;
			break;
		} else {
			$search_str = substr($search_str, 0, -1);
		}
	}
 
	$search_str = substr($min_str, $start_pos);
}
 
echo $substr;
Перейти к верхней панели