华为机试题 :字符串压缩

题目描述

给定一个字符串 s,请你按如下规则压缩:

  • 连续相同的字符压缩为 字符 + 出现次数

  • 如果出现次数为 1,则只输出字符,不输出 1

  • 只压缩连续字符

输入描述

输入一行字符串 s,长度不超过 1000。

输出描述

输出压缩后的字符串。

示例 1

输入

text

复制代码
aaabbc

输出

text

复制代码
a3b2c

示例 2

输入

text

复制代码
abc

输出

text

复制代码
abc

C++ 解法

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    cin >> s;

    string ans;
    int n = s.size();

    for (int i = 0; i < n; ) {
        int j = i;
        while (j < n && s[j] == s[i]) j++;

        int cnt = j - i;
        ans += s[i];
        if (cnt > 1) ans += to_string(cnt);

        i = j;
    }

    cout << ans << endl;
    return 0;
}
相关推荐
ggb喔1 小时前
52pojie 的图片工具:为什么无损转换后体积涨了 6 倍、照片方向还是歪的
图像处理·python·算法·计算机视觉·图形渲染·媒体
菜鸟~noob2331 小时前
【电子战】第25篇:自由空间、双射线与菲涅尔区【含matlab代码】
开发语言·算法·matlab
地平线开发者1 小时前
地平线征程6M YOLOv8s 部署
算法·自动驾驶
Run_Teenage1 小时前
算法:Manacher(马拉车)算法、中心扩展算法
算法
Tisfy2 小时前
LeetCode 0301.删除无效的括号:二进制枚举 / 回溯
算法·leetcode·字符串·题解·回溯·括号匹配·二进制枚举
Nil2082 小时前
leetcode 322零钱兑换
算法·leetcode·职场和发展
海绵宝宝转agent2 小时前
2026-10-9 leetcode100刷题+面经整理
笔记·算法·面试
yi0112 小时前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
木井巳2 小时前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法