【蓝桥杯】压缩字符串

题目:

解题思路:

遍历字符串,每个字符与前一个字符比较,若相同 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();
    }
}
相关推荐
wgego2 分钟前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
冻柠檬飞冰走茶14 分钟前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
机建狂魔43 分钟前
Codex 接入第三方模型 API 实战:以 Mimo 为例
java·服务器·数据库·ai·ai编程·codex
玖玥拾1 小时前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI1 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
山峰哥1 小时前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
乐观的Terry1 小时前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
前端开发张小七1 小时前
Java 学习笔记 · 第二课:面向对象核心(封装、继承、多态)及接口与异常
java·后端·程序员
wangjialelele1 小时前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化
孙启超2 小时前
【AI应用开发】LangChain 中 Chain 和 Agent 核心区别?
java·人工智能·langchain·llm·rag·ai应用开发·agent loop