题解 | #压缩字符串(一)#

压缩字符串(一)

https://www.nowcoder.com/practice/c43a0d72d29941c1b65c857d8ac9047e

public class CompressString {
	public String compressString(String param) {
		// write code here
		if (param == null || param.length() == 0) {
			return "";
		}
		Stack stack = new Stack();
		char[] chars = param.toCharArray();
		ArrayList<Integer> list = new ArrayList<>();
		stack.push(chars[0]);
		int count = 1;
		for (int i = 1; i < chars.length; i++) {
			Object peek = stack.peek();
			if (chars[i] == (char) peek) {
				count++;
			} else {
				stack.push(chars[i]);
				list.add(count);
				count = 1;
			}
		}
		list.add(count);
		StringBuilder builder = new StringBuilder();
		for (int i = list.size() - 1; i >= 0; i--) {
			Integer integer = list.get(i);
			if (integer == 1) {
				builder.append(stack.pop());
			} else {
				builder.append(list.get(i)).append(stack.pop());
			}
		}
		builder.reverse();
		return builder.toString();
		
	}
}

#算法题#
全部评论

相关推荐

Elastic90:公司不要求加班,但 又不允许你准点下班,经典又当又立
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务