字符串压缩

Posted 573583868wuy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串压缩相关的知识,希望对你有一定的参考价值。

描述

设计一种方法,通过给重复字符计数来进行基本的字符串压缩。

例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。

可以假设字符串仅包括a-z的字母。

样例

str=aabcccccaaa 返回 a2b1c5a3
str=aabbcc 返回 aabbcc
str=aaaa 返回 a4

 

 1 <?php
 2 /**
 3  * 字符串压缩
 4  * 循环字符串,然后找到每个字符有多少个重复的
 5  * 把原字符和重复数拼接到一个新的字符串中
 6  */
 7 function solution($str)
 8 {
 9     $len = strlen($str);
10     $ret = ‘‘;
11     $j = 0;
12     for($i=0; $i<$len;$i=$j)
13     {
14         while($j < $len && $str[$i] == $str[$j])
15         {
16             ++$j;
17         }
18         $ret .= $str[$i];
19         $ret .= $j - $i;
20     }
21     return strlen($ret)<$len ? $ret : $str;
22 }
23 
24 $str = ‘aabcccccaaa‘;
25 echo solution($str) . "<br/>";
26 $str = ‘aabbcc‘;
27 echo solution($str) . "<br/>";
28 $str = ‘aaaa‘;
29 echo solution($str) . "<br/>";

 



以上是关于字符串压缩的主要内容,如果未能解决你的问题,请参考以下文章

1078. 字符串压缩与解压 (20)

PAT Basic 1078

PostgreSQL 是不是支持表(片段)的透明压缩?

python python zipfile获取并解压缩片段

21个常用代码片段

片段(Java) | 机试题+算法思路+考点+代码解析 2023