题解 | #压缩牛群编号#
压缩牛群编号
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;
}
}
