题解 | #压缩牛群编号#

压缩牛群编号

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;

    }
}

全部评论

相关推荐

机械岗~感谢tp
小花的沉默:广工拿到的我直接开吃
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务