import java.util.*;
public class compressOver3 {
    public static String compress (String str) {
        if (str == null || str.length() < 3) {
            return null;
        }

        char prev = str.charAt(0);
        StringBuilder ans= new StringBuilder();
        int count = 1;
        for (int i = 1; i <= str.length(); i++) {
            // System.out.println(str.charAt(i));
            if (i  == str.length()) {
                helper(ans, count, prev);
                break;
            }
            if (str.charAt(i) != prev) {
                helper(ans, count, prev);
                prev = str.charAt(i);
                count = 1;
            }else if (str.charAt(i) == prev) {
                count++;
            }
        }

        return ans.toString();
    }x
    public static void helper(StringBuilder ans, int count, char prev){
        if (count < 3) {
            for (int j = 0; j < count; j++) {
                ans.append(prev);
            }
        }else{
            ans.append(prev);
            ans.append(String.valueOf(count));
        }
    }
    public static void main(String[] args) {
        String input = "aabbcc";
        System.out.println(compress(input));
    }
}

aaaabb -> a4bb

aaabbbccc ->a3b3c3

aabbcc->aabbcc

三个以上压缩

注意细节⚠️

results matching ""

    No results matching ""