【蓝桥杯】压缩字符串

题目:

解题思路:

遍历字符串,每个字符与前一个字符比较,若相同 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();
    }
}
相关推荐
历程里程碑几秒前
普通数组-----除了自身以外数组的乘积
大数据·javascript·python·算法·elasticsearch·搜索引擎·flask
4311媒体网2 分钟前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm
淡忘_cx3 分钟前
使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)
java·自动化·jenkins
AI视觉网奇3 分钟前
blender 导入fbx 黑色骨骼
学习·算法·ue5·blender
毕设源码-钟学长8 分钟前
【开题答辩全过程】以 基于SSM的孤儿救助信息管理系统设计与实现为例,包含答辩的问题和答案
java
weixin_468466858 分钟前
目标识别精度指标与IoU及置信度关系辨析
人工智能·深度学习·算法·yolo·图像识别·目标识别·调参
独自破碎E8 分钟前
【曼哈顿距离】BISHI25 最大 FST 距离
java·开发语言
苏涵.8 分钟前
Java三大集合:List、Set、Map
java·开发语言
存在的五月雨8 分钟前
Spring Security认证流程
java·开发语言·mysql
树码小子9 分钟前
综合练习:验证码案例(1)总体设计
java·开发语言·spring