Skip to content

the-gt99/packer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Три разновидности одной функции (Packer).

Packer 1 - имеет следующий параметр активации ($str).
Где $str - это строка,которую нужно сжать.

После вызова функции в ответ приходит массив содержащий letters и quantity. Где letters - буквы, а quantity их количество. Пример:

Вызвав функцию "packer_1" и передав ей строку:

//php code 
$str = 'xAAAAAAAAAAfffffhxddgfka';

В ответ вы получите массив Array([letters]=>Array([1]=>x[2]=>A[3]=>f[4]=>h[5]=>x[6]=>d[7]=>g[8]=>f[9]=>k[10]=>a)[quantity]=>Array([1]=>1[2]=>10[3]=>5[4]=>1[5]=>1[6]=>2[7]=>1[8]=>1[9]=>1[10]=>1)).

Пример вызова функции:

//php code 
print_r(packer_1($str));

Соответственно для распаковки исходной строки нужно воспользоваться парной функцией для packer_1, под названием unpacker_1.

Из минусов этого дуэта:
1.Если исходная строка содержит много односимвольных элементов, то результат будет иметь вес больше исходной строки.
Из плюсов: 1.Маленький код. 2.Быстрая работа




Packer 2 - имеет следующий параметр активации ($str).
Где $str - это строка,которую нужно сжать.

После вызова функции в ответ приходит запакованная строка.

Вызвав функцию "packer_2" и передав ей строку:

//php code 
$str = 'xAAAAAAAAAAfffffhxddgfka';

В ответ вы получите массив строку 'xA10f5hxd2gfka'

Пример вызова функции:

//php code 
print_r(packer_2($str));

Соответственно для распаковки исходной строки нужно воспользоваться парной функцией для packer_2, под названием unpacker_2.

Из минусов этого дуэта:
1.Множество проверок, что приводит к медленной работе.
Из плюсов: 1.Результат всегда будет не больше исходной строки.




Packer 3 - имеет следующий параметр активации ($str).
Где $str - это строка,которую нужно сжать.

После вызова функции в ответ приходит массив содержащий letters и quantity. Где letters - буквы, а quantity их количество переведённое в ASCII. Пример:

Вызвав функцию "packer_3" и передав ей строку:

//php code 
$str = 'xAAAAAAAAAAfffffhxddgfka';

В ответ вы получите массив Array([letters]=>Array([1]=>x[2]=>A[3]=>f[4]=>h[5]=>x[6]=>d[7]=>g[8]=>f[9]=>k[10]=>a)[quantity]=>Array([1]=>�[2]=>[3]=>�[4]=>�[5]=>�[6]=>�[7]=>�[8]=>�[9]=>�[10]=>�)).

Пример вызова функции:

//php code 
print_r(packer_3($str));

Соответственно для распаковки исходной строки нужно воспользоваться парной функцией для packer_3, под названием unpacker_3.

Из минусов этого дуэта:
1.Если исходная строка содержит много односимвольных элементов, то результат будет иметь вес больше исходной строки.
Из плюсов: 1.Если строка будет иметь много повторяющихся символов к пример 250 букв G, 123 буквы D, то результат будет меньше исходной строки.

//Если я не удали этот комментарий, значит я не дописал функцию, которая должна выбирать лучшую из выше перечисленных автоматический, в зависимости от исходной строки.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages