博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
213. String Compression【LintCode java】
阅读量:5338 次
发布时间:2019-06-15

本文共 1634 字,大约阅读时间需要 5 分钟。

Description

Implement a method to perform basic string compression using the counts of repeated characters. For example, the string aabcccccaaa would become a2b1c5a3.

If the "compressed" string would not become smaller than the original string, your method should return the original string.

You can assume the string has only upper and lower case letters (a-z).

Example

str=aabcccccaaa return a2b1c5a3

str=aabbcc return aabbcc
str=aaaa return a4

解题:字符串压缩问题。用两个临时变量保存字符,一个变量count来计数,pre保存前一个字符,p保存当前字符,如果p不等于pre,将pre和count连到结果上去,并且跟新pre为p,一次循环即可。另外注意对最后一个(或几个相同的)字符进行处理。

public class Solution {    /**     * @param str: a string     * @return: a compressed string     */    public String compress(String str) {        // write your code here        if(str == null)            return null;        String res = "";        int count = 0;        char pre = (byte)0;//前一个字符        char p = (byte)0;//当前字符        for(int i = 0; i < str.length(); i++){            if(pre == 0 && p == 0){                //初始化                pre = str.charAt(i);                p = str.charAt(i);                count++;                continue;//下一轮循环            }            //不是开头字符            p = str.charAt(i);            if(p == pre){                count++;            }else{                res = res + pre + String.valueOf(count);                pre = p;                count = 1;            }        }        //循环结束,处理最后一个(类)字符        res = res + pre + String.valueOf(count);                if(res.length() < str.length()){            return res;        }else{            return str;        }    }}

 

转载于:https://www.cnblogs.com/phdeblog/p/9298898.html

你可能感兴趣的文章
关于 linux 的 limit 的设置
查看>>
MTK笔记
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
struts1和struts2的区别
查看>>
Redis常用命令
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>