【蓝桥杯】压缩字符串

题目:

解题思路:

遍历字符串,每个字符与前一个字符比较,若相同 count + 1 ,若不同,将 temp 添加至新字符串末尾,并更新 temp ,同时若 count > 1 (即本字符出现多次,可以压缩), 将 count 添加至新字符串末尾。同时利用 falg判断是否进行压缩操作。

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String str = scan.nextLine();
        StringBuilder ans = new StringBuilder();
        char temp = str.charAt(0);
        int count = 1;
        boolean flag = false;  // 判断是否压缩

        for (int i = 1; i < str.length(); i++) {
          if (temp == str.charAt(i)){
            count++;
          }
          else {
            ans.append(temp);
            temp = str.charAt(i);
            if (count > 1) {
              ans.append(count);
              count = 1;
              flag = true;  // 进行了压缩
            }
          }
        }
        //处理最后一个字符
        ans.append(temp);
        if (count > 1) {
              ans.append(count);
              flag = true;
            }

        if (!flag) {
          System.out.println("NO");
        }
        else {
          System.out.println(ans);
        }
        scan.close();
    }
}
相关推荐
forestsea几秒前
【深度学习】Java DL4J基于 CNN 构建车辆识别与跟踪模型
java·人工智能·深度学习·cnn·deep learning
❦丿多像灬笑话、℡15 分钟前
leetcode热题100(240. 搜索二维矩阵 II)c++
算法·leetcode·矩阵
tealcwu26 分钟前
【游戏设计原理】32 - 消费者剩余
java·开发语言·游戏
计科土狗27 分钟前
埃氏筛法与线性筛法
算法
小菜什么都不会32 分钟前
xtuoj 等式
数据结构·算法
小马爱打代码35 分钟前
Spring Boot项目开发常见问题及解决方案(下)
java·spring boot·后端
Teng-Sun37 分钟前
如何结合PCA、t-SNE/UMAP与聚类算法进行高维数据分析?
算法·数据分析·聚类
潜意识起点37 分钟前
计算机专业文献检索期末论文
java·开发语言
pk_xz1234561 小时前
使用Wikitext2数据集对Llama-7B和Llama3-8B模型进行50%权重剪枝的一般步骤和可能的实现方式
算法·llama·剪枝
C语言编程小刘 11 小时前
C语言期末复习1.1
c语言·算法·leetcode