首页 > 其他 > 详细

字符串压缩

时间:2018-07-10 23:27:35      阅读:296      评论:0      收藏:0      [点我收藏+]

描述

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

例如,字符串 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/>";

 

字符串压缩

原文:https://www.cnblogs.com/573583868wuy/p/9291904.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!