【蓝桥杯】压缩字符串

题目:

解题思路:

遍历字符串,每个字符与前一个字符比较,若相同 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();
    }
}
相关推荐
无限的鲜花16 小时前
反射(原创推荐)
java·开发语言
IT二叔16 小时前
Java项目部署-03-teamcity-cicd-docker镜像流水线方式部署
java·ci/cd·持续部署
一路向北he17 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
QiLinkOS17 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
疯狂打码的少年17 小时前
【操作系统】页面置换算法(OPT/FIFO/LRU)
算法
超级数据查看器17 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
小O的算法实验室17 小时前
2026年CIE,优化客货协同运输:综合地铁系统的列车容量动态分配
算法
Coder_Shenshen18 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解
网络·后端·算法
折哥的程序人生 · 物流技术专研18 小时前
《Java 100 天进阶之路》第50篇:阻塞队列与并发容器(2026版)
java·面试题·java进阶·blockingqueue·并发容器·集合源码·java100天进阶
ai_coder_ai19 小时前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作
java·运维·自动化