题解 | #压缩牛群编号#
压缩牛群编号
https://www.nowcoder.com/practice/db9dd240e5f54b6d8eeadfbd9b7f865f
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param chars char字符型一维数组 * @return char字符型一维数组 */ public char[] compress (char[] chars) { // write code here Deque<Character> qe = new ArrayDeque<>(); qe.addLast(chars[0]); int flag = 1; for (int i = 1; i < chars.length; i++) { if (chars[i] == qe.getLast()) { flag++; } else if ( chars[i] != qe.getLast()) { if (flag > 1) { char[] digitsArray = Integer.toString(flag).toCharArray(); // 将字符数组的每一位按逆序添加到Deque的尾部 for (int j = 0;j<digitsArray.length ; j++) { qe.addLast(digitsArray[j]); } } flag = 1; qe.addLast(chars[i]); } if (i == chars.length - 1 && flag > 1) { char[] digitsArray = Integer.toString(flag).toCharArray(); // 将字符数组的每一位按逆序添加到Deque的尾部 for (int j = 0;j<digitsArray.length ; j++) { qe.addLast(digitsArray[j]); } } System.out.println(qe); } char[] charArray = new char[qe.size()]; int index = 0; for (Character character : qe) { charArray[index++] = character; } return charArray; } }