程序员面试金典1.5:实现字符串的压缩功能
2015-08-29 10:39
330 查看
1.5:利用字符重复出现的次数,编写一个方法,实现基本的字符串的压缩功能。比如,字符串“aabcccccaaa"会变成”a2b1c5a3",若压缩后的字符串没有变短,则返回原先的字符串。
解法
咋一看,编写这个方法似乎相当简单,实则有点复杂。我们会迭代访问字符串,将字符拷贝至新的字符串,并数出重复的字符。
下面是Java的实现代码:
解法
咋一看,编写这个方法似乎相当简单,实则有点复杂。我们会迭代访问字符串,将字符拷贝至新的字符串,并数出重复的字符。
下面是Java的实现代码:
public String compress(String str){ if(str == null || str.isEmpty()) return null; StringBuffer mystr = new StringBuffer(); char last = str.charAt(0); int count = 1; for(int i = 1;i<str.length();i++){ if(str.charAt(i) == last){ count++; }else{ mystr.append(last); mystr.append(count); last = str.charAt(i); count= 1; } } mystr.append(last); mystr.append(count); if(mystr.length() >= str.length()) return str; else return mystr.toString(); }
相关文章推荐
- 《程序员思维训练》读书小记
- 面试题25.二叉树中和为某一值的路径
- 知识点总结: Java 面试宝典 2013版(超长版) - Java Web 部分
- 面试题24.二叉搜索树的后序遍历序列
- 黑马程序员_集合框架(三)
- 每天5道面试题(六)java基础
- 程序员的七年之痒(个人五年职业规划)
- 黑马程序员-----Java基础-----反射
- 为什么面试总喜欢考算法题?
- 黑马程序员——Java基础之IO流
- 黑马程序员——java基础 反射 (复习)
- 【LeetCode-面试算法经典-Java实现】【223-Rectangle Area(矩形区域)】
- 【LeetCode-面试算法经典-Java实现】【219-Contains Duplicate II(包含重复元素II)】
- 黑马程序员——Java基础---IO(二)
- 面试题:字符串查找
- 面试题:两个字符串是变位词
- 黑马程序员——多线程——多线程概述,实现,控制与安全问题的解决
- 面试题:Two Sum
- 程序员苦中你知道吗?
- 深圳美女程序员鞋中藏物躲避安检